Переполнение кучи при парсинге плавающей запятой (CVE-2013-4164)
Опубликовал 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
Последние новости
Вышел Ruby 3.2.10
Вышел Ruby 3.2.10.
Опубликовал hsbt 14-01-2026
Вышел Ruby 4.0.1
Вышел Ruby 4.0.1.
Опубликовал k0kubun 13-01-2026
Вышел Ruby 4.0.0
Мы рады сообщить о выпуске Ruby 4.0.0. Ruby 4.0 представляет «Ruby Box» и «ZJIT», а также добавляет множество улучшений.
Опубликовал naruse 25-12-2025
Новый облик документации Ruby
Вслед за редизайном ruby-lang.org, у нас есть еще новости в честь 30-летия Ruby: docs.ruby-lang.org получил полностью новый облик с Aliki — новым стандартным шаблоном RDoc....
Опубликовал Stan Lo 23-12-2025