Вразливість 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.
- https://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p369.tar.gz
- https://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz
Оновлення
- Ruby 1.8.7-p173 мав проблему. Якщо ви вже завантажили його, будь ласка, отримайте новіший. Ruby 1.8.6-p369 не має цієї помилки.
Останні новини
Вийшов Ruby 3.3.12
Вийшов Ruby 3.3.12.
Опублікував hsbt 16-07-2026
Вийшов Ruby 4.0.6
Вийшов Ruby 4.0.6.
Опублікував k0kubun 14-07-2026
Вийшов Ruby 3.4.10
Вийшов Ruby 3.4.10.
Опублікував nagachika 30-06-2026
Вийшов Ruby 4.0.5
Вийшов Ruby 4.0.5.
Опублікував k0kubun 20-05-2026