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 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
Оновлення айдентики нашого сайту
Раді оголосити про комплексне оновлення нашого сайту. Дизайн для цього оновлення створила Taeko Akatsuka.
Опублікував Hiroshi SHIBATA 22-12-2025
Вийшов Ruby 4.0.0 preview3
Раді повідомити про вихід Ruby 4.0.0-preview3. Ruby 4.0 вводить Ruby::Box і “ZJIT” та додає багато покращень.
Опублікував naruse 18-12-2025