Опубликовал tenderlove 22-11-2013
Перевел: gazay
Существует переполнение при парсинге номера с плавающей запятой в Ruby. Этой уязвимости назначен CVE идентификатор CVE-2013-4164.
Детали
В любое время во время конвертации строки в номер с плавающей запятой, специально набранная строка может вызвать переполнение кучи. Это может привести к отказу сервиса посредством ошибок сегментации и произвольного выполнения кода. Любая программа, производящая конвертацию информацию неавторизованного источника в значения с плавающей запятой (особенно это касается программ, принимающих JSON данные), уязвима.
Уязвим код, выглядящий как-то так:
untrusted_data.to_f
Но любой код, который может привести к созданию значений с плавающей запятой, уязвим. Типа такого:
JSON.parse untrusted_data
Заметьте, этот баг похож на CVE-2009-0689.
Всем пользователям затронутых версий рекомендуется обновиться до ПОЧИНЕНЫХ версий Ruby.
Затронутые версии
- Все версии Ruby 1.8
- Все версии Ruby 1.9 до Ruby 1.9.3 patchlevel 484
- Все версии Ruby 2.0 до Ruby 2.0.0 patchlevel 353
- Все версии Ruby 2.1 до Ruby 2.1.0 preview2
- транк до ревизии 43780
Solutions
Всем пользователям рекомендуется обновиться до Ruby 1.9.3 patchlevel 484, Ruby 2.0.0 patchlevel 353 или Ruby 2.1.0 preview2.
Пожалуйста помните, что серия версий Ruby 1.8 и все более ранние версии являются устаревшими. Не планируется выпускать ПОЧИНЕННЫЕ версии для них. Пользователям этих версий рекомендуется обновиться как можно скорее, так как мы не можем гарантировать продолжения выпусков версий с исправлениями безопасности для неподдерживаемых релизов.
Благодарность
Спасибо Charlie Somerville за сообщение о данной уязвимости!
История
- Оригинал опубликован 2013-11-22 04:00:00 UTC
- Второй раз опубликовано 2013-11-22 06:46:00 UTC
- Третий раз опубликовано 2013-11-22 22:46:00 UTC