WEBrick має вразливість ін'єкції послідовностей екранування
Опублікував Urabe Shyouhei 10-01-2010
Переклав: Andrii Furmanets
Виявлено вразливість у WEBrick, частині стандартної бібліотеки Ruby. WEBrick дозволяє зловмисникам ін’єктувати зловмисні послідовності екранування до його логів, роблячи можливим виконання небезпечних контрольних символів на емуляторі терміналу жертви.
У нас вже є виправлення для цього. Випуски для всіх активних гілок будуть слідувати за цим оголошенням. Але на даний момент ми рекомендуємо вам уникати перегляду ваших логів WEBrick, поки ви не оновите ваш процес WEBrick.
Детальний опис
Послідовності екранування терміналу використовуються для дозволу різних форм взаємодії між терміналом та внутрішнім процесом. Проблема в тому, що ці послідовності не призначені для випуску ненадійними джерелами; такими як мережеві входи. Тому якщо віддалений зловмисник міг ін’єктувати послідовності екранування в логи WEBrick, і жертва випадково консультує їх через свій/свій термінал, зловмисник міг скористатися різними слабкостями в емуляторах терміналу.
І WEBrick не вдається відфільтрувати ці послідовності екранування терміналу.
Приклад:
% xterm -e ruby -rwebrick -e 'WEBrick::HTTPServer.new(:Port=>8080).start' &
% wget http://localhost:8080/%1b%5d%32%3b%6f%77%6e%65%64%07%0a
Стежте за заголовком вікна xterm.
Зачеплені версії
- Ruby 1.8.6 рівень патчу 383 та всі попередні версії
- Ruby 1.8.7 рівень патчу 248 та всі попередні версії
- Версії розробки Ruby 1.8 (1.8.8dev)
- Ruby 1.9.1 рівень патчу 376 та всі попередні версії
- Версії розробки Ruby 1.9 (1.9.2dev)
Рішення
- Виправлення для 1.8.6, 1.8.7, та 1.9.1 будуть слідувати за цим оголошенням.
- Оновлення 1.8.7 pl. 249 випущено для виправлення цієї проблеми. Користувачів 1.8.7 заохочується оновитися.
- Оновлення 1.9.1 pl. 378 випущено для виправлення цієї проблеми. Користувачів 1.9.1 заохочується оновитися.
- Оновлення 1.8.6 pl. 388 випущено для виправлення цієї проблеми. Користувачів 1.8.6 заохочується оновитися.
- Для версій розробки, будь ласка, оновіться до найновішої ревізії для кожної гілки розробки.
Подяка
Подяка Giovanni “evilaliv3” Pellerano, Alessandro “jekil” Tanasi, та Francesco “ascii” Ongaro за виявлення цієї вразливості.
Останні новини
Вийшов Ruby 3.4.9
Вийшов Ruby 3.4.9.
Опублікував nagachika 11-03-2026
Вийшов 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