Показать сообщение отдельно

Переполнение памяти в Ruby
  #1  
Старый 04.11.2006, 14:54
Talisman
Постоянный
Регистрация: 22.04.2006
Сообщений: 566
С нами: 10554411

Репутация: 517


По умолчанию Переполнение памяти в Ruby

Источник: http://doci.nnm.ru/scrip/03.11.2006/...iblioteke_cgi/

В библиотеке CGI ruby обнаружена уязвимость, которая позволяет успешно проводить DoS-атаки против вашего web-сервера.

Если злоумышленник отправляет на ваш сервер http-запрос, использующий так называемую multipart MIME encoding, в котором разделитель частей начинается с "-" вместо "--", то это приводит к тому, что сжирается вся память, загрузка процессора тут же взлетает под потолок - получите полноценную Denial of Service attack.

Подвержены все версии, вплоть до текущей стабильной 1.8.5, а так же все девелоперские (1.9), выпущенные до 23 сентября 2006 года.

Лечить не просто, а очень просто:
Находим файл cgi.rb. В случае любой unix-like OS с правильной иерархией файловой системы это будет /usr/local/lib/ruby/<версия.ruby>/cgi.rb. В случае же Windows в каталоге, куда установлен ruby, ищем lib\ruby<версия.ruby>\cgi.rb.

Открываем его в редакторе и меняем строку под номером 1021 с
Код:
 if c.nil?
на
Код:
if c.nil? || c.empty?
Или просто берём вот этот патч, если у вас есть и вы умеете пользоваться соответствующей утилитой
 
Ответить с цитированием