Вразливість DoS у BigDecimal

Опублікував Urabe Shyouhei 09-06-2009
Переклав: Andrii Furmanets

Виявлено вразливість відмови в обслуговуванні (DoS) у стандартній бібліотеці BigDecimal Ruby. Перетворення з об’єктів BigDecimal у числа Float мало проблему, яка дозволяє зловмисникам ефективно спричиняти помилки сегментації.

ActiveRecord покладається на цей метод, тому більшість додатків Rails зачеплені цим. Хоча це не проблема, специфічна для Rails.

Вплив

Зловмисник може спричинити відмову в обслуговуванні, змусивши BigDecimal парсити неймовірно велике число, таке як:

BigDecimal("9E69999999").to_s("F")

Вразливі версії

Серія 1.8

  • 1.8.6-p368 та всі попередні версії
  • 1.8.7-p160 та всі попередні версії

Серія 1.9

  • Всі версії 1.9.1 не зачеплені цією проблемою

Рішення

Серія 1.8

Будь ласка, оновіться до 1.8.6-p369 або ruby-1.8.7-p174.

Оновлення

  • Ruby 1.8.7-p173 мав проблему. Якщо ви вже завантажили його, будь ласка, отримайте новіший. Ruby 1.8.6-p369 не має цієї помилки.

Останні новини

Вийшов 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

Вийшов Ruby 4.0.0 preview3

Раді повідомити про вихід Ruby 4.0.0-preview3. Ruby 4.0 вводить Ruby::Box і “ZJIT” та додає багато покращень.

Опублікував naruse 18-12-2025

Більше новин...