CVE-2021-41817: DoS-уязвимость обработки дат в Ruby

good-penguin.png

Выпущены обновлённые версии 3.2.1, 3.1.2, 3.0.2 и 2.0.1 гема date, содержащие исправление безопасности, связанное с уязвимостью типа ReDoS (отказ от обслуживания в регулярных выражениях) в методах разбора дат. С её помощью можно совершить реальную DoS-атаку.

Подробности:

Методы разбора дат гема date, включая Date.parse, используют внутри регулярные выражения, некоторые из которых уязвимы перед ReDoS-атакой. Могут быть затронуты приложения и библиотеки, которые применяют эти методы к недоверенным входным данным.

Исправление, вместо изменения регулярных выражений, просто ограничивает длину входной строки по умолчанию 128-ю байтами — поскольку регулярных выражений в этом геме используется много, и не исключено наличие ещё не обнаруженных уязвимостей подобного рода в остальных регулярных выражениях. Для совместимости можно убрать ограничение передачей значения nil в аргументе limit (например, Date.parse(str, limit: nil), но имейте в виду, что разбор в таком случае может занять много времени.

Рекомендуется обновить гем до указанных или более поздних версий. Это можно сделать командой gem update date. Если вы используете Bundler — добавьте в Gemfile строку gem "date", ">= 3.2.1".

Затронутые версии гема date:

  • 2.0.0 и ранее (поставляются с веткой Ruby 2.6)
  • 3.0.1 и ранее (поставляются с веткой Ruby 2.7)
  • 3.1.1 и ранее (поставляются с веткой Ruby 3.0)
  • 3.2.0 и ранее

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

>>> Источник

©  Linux.org.ru