Переповнення купи при парсингу чисел з плаваючою комою (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 4.0.5
Вийшов Ruby 4.0.5.
Опублікував k0kubun 20-05-2026
Вийшов Ruby 4.0.4
Вийшов Ruby 4.0.4.
Опублікував k0kubun 11-05-2026
Вийшов Ruby 4.0.3
Вийшов Ruby 4.0.3.
Опублікував k0kubun 21-04-2026
Вийшов Ruby 3.2.11
Вийшов Ruby 3.2.11. Цей реліз містить оновлення gem zlib, яке усуває CVE-2026-27820.
Опублікував hsbt 27-03-2026