Переполнение буфера в модуле YAML для URI-закодированных строк (CVE-2014-2525)

При парсинге URI-закодированной строки может произойти переполнение буфера в YAML. Этой уязвимости присвоен номер CVE-2014-2525.

Подробнее

Всякий раз, когда YAML парсит строку с тегами, специально подготовленная строка может вызвать переполнение буфера и выполнению произвольного кода. Например:

YAML.load <строка-из-недоверенного-источника>

Затронутые версии

Ruby 1.9.3-p0 и новее используют psych в качестве парсера YAML по умолчанию. Все версии модуля psych слинкованные с библиотекой libyaml <= 0.1.5 подвержены атаке.

Проверить версию libyaml можно так:

$ ruby -rpsych -e 'p Psych.libyaml_version'
[0, 1, 5]

Решение

Пользователи, установившие libyaml в систему, могут обновиться до версии 0.1.6. Во время пересборки Ruby надо указать на новую версию:

$ ./configure --with-yaml-dir=/path/to/libyaml

Пользователи, полагающиеся на встроенную версию, могут обновиться до версии psych 2.0.5, которая содержит libyaml 0.1.6:

$ gem install psych

История

  • Изначально опубликовано 2014-03-29 01:49:25 UTC
  • Обновлено 2014-03-29 09:37:00 UTC