02.07.2022

Выпущены Ruby 2.6.10, 2.7.6, 3.0.4, 3.1.2 с исправлениями уязвимостей

А именно:

  • CVE-2022-28738: двойное высвобождение памяти в регулярных выражениях. Проявляется на специально созданных входных строках. Хоть в целом и не следует создавать регулярные выражения из строк, полученных из недоверенных источников — уязвимость подтверждена и исправлена. Затронутые ветки: 3.0 и 3.1, ветки 2.6 и 2.7 не затронуты.

  • CVE-2022-28739: чтение данных за пределами буфера при конвертации строк в числа с плавающей точкой. Присутствует во внутренней функции, использующейся, например, в Kernel#Float и String#to_f. Обычно приводит к ошибке сегментации и краху процесса, но в определённых условиях может использоваться для чтения памяти за пределами буфера. Затронуты ветки 2.6, 2.7, 3.0 и 3.1.

Спасибо piao за обнаружение уязвимостей.

Также следует отметить, что, начиная с этих выпусков, поддержка ветки 2.6 прекращается и исправлений новых уязвимостей не будет — возможны исправления только очень серьёзных регрессий. Ветка 2.7 же переходит из фазы полноценной поддержки в фазу обновлений безопасности, которая будет длиться год. Рекомендуется уже сейчас начать перевод проектов на использование версий Ruby 3.0 или 3.1.

Скачать:

>>> 3.1.2

>>> 3.0.4

>>> 2.7.6

>>> 2.6.10

Источник.