CVE-2019-15845: Уязвимость NUL инъекции в File.fnmatch и File.fnmatch?

Найдена уязвимость NUL инъекции во встроенные методы Ruby (File.fnmatch и File.fnmatch?). Злоумышленник, у которого есть контроль над параметром path pattern, может ей воспользоваться, выполнив сопоставление путей, несмотря на намерение автора программы. CVE-2019-15845 была назначена этой уязвимости.

Подробности

Встроенные методы File.fnmatch и его алиас File.fnmatch? принимают в качестве первого параметра шаблон пути. Когда шаблон содержит NUL символ (\0), методы считают, что путь немедленно заканчивается до NUL байта. Таким образом, скрипт, который использует внешний ввод в качестве аргумента шаблона, злоумышленник может заставить его неправильно сопоставлять с путём, который указан в качестве второго параметра.

Все пользователи, работающие на уязвимом выпуске, должны немедленно обновиться.

Уязвимые Версии

  • Все релизы Ruby 2.3 и меньше
  • Серия Ruby 2.4: Ruby 2.4.7 и меньше
  • Серия Ruby 2.5: Ruby 2.5.6 и меньше
  • Серия Ruby 2.6: Ruby 2.6.4 и меньше
  • Ruby 2.7.0-preview1
  • до мастер-коммита a0a2640b398cffd351f87d3f6243103add66575b

Благодарности

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

История

  • Первоначально опубликовано в 2019-10-01 11:00:00 (UTC)