Переповнення купи при парсингу чисел з плаваючою комою (CVE-2013-4164)
Опублікував tenderlove 22-11-2013
Переклав: Andrii Furmanets
Є переповнення при парсингу чисел з плаваючою комою в Ruby. Цій вразливості присвоєно ідентифікатор CVE CVE-2013-4164.
Деталі
Кожного разу, коли рядок перетворюється на значення з плаваючою комою, спеціально сконструйований рядок може спричинити переповнення купи. Це може призвести до атаки відмови в обслуговуванні через segmentation faults та можливо виконання довільного коду. Будь-яка програма , яка перетворює вхідні дані невідомого походження на значення з плаваючою комою (особливо поширено при прийнятті JSON), вразлива.
Вразливий код виглядає приблизно так:
untrusted_data.to_f
Але будь-який код, який створює значення з плаваючою комою з зовнішніх даних, вразливий, наприклад:
JSON.parse untrusted_data
Зверніть увагу, що ця помилка схожа на CVE-2009-0689.
Всі користувачі, які запускають зачеплений випуск, повинні оновитися до ВИПРАВЛЕНИХ версій Ruby.
Зачеплені версії
- Всі версії Ruby 1.8 після Ruby 1.8.6 рівня патчу 230
- Всі версії Ruby 1.9 до Ruby 1.9.3 рівня патчу 484
- Всі версії Ruby 2.0 до Ruby 2.0.0 рівня патчу 353
- Всі версії Ruby 2.1 до Ruby 2.1.0 preview2
- до ревізії trunk 43780
Рішення
Всім користувачам рекомендується оновитися до Ruby 1.9.3 рівня патчу 484, Ruby 2.0.0 рівня патчу 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
- Четверте опублікування 2013-12-10 12:09:38 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 — новій темі за замовчуванням для...
Опублікував Stan Lo 23-12-2025