Важное дополнение к прошлому топику: официальные источники (mail-archives.apache.org/mod_mbox/httpd-announce/201108.mbox/%3C20110826103531.998348F82@minotaur.apache.org%3E) сообщают что уязвимости также подвержен устаревший заголовок Request-Range времен MSIE 3.
Проверить, уязвим ли ваш сервер к этому варианту атаки можно так:
curl -I -H «Request-Range: bytes=0-1,0-2,0-3,0-4,0-5,0-6» -s www.example.com/robots.txt | grep Partial
Если у вас на такие запросы отвечает Apache и вы видите 206 Partial Content, значит быть беде.
Решение для nginx
Запретить nginx проксировать опасные заголовки можно директивами:
proxy_set_header Range «»;
proxy_set_header Request-Range «»;
Решение для Apache
Заблокировать проблемные заголовки можно при помощи mod_headers:
# a2enmod headers
RequestHeader unset Range
RequestHeader unset Request-Range
Подробное описание этой атаки читайте в предыдущем топике на эту тему habrahabr.ru/blogs/infosecurity/127029/.
habrahabr.ru/blogs/infosecurity/127199/
Быстрый фикс под Ubuntu:
echo "
# Drop the Range header when more than 5 ranges.
# CVE-2011-3192
SetEnvIf Range (?:,.*?){5,5} bad-range=1
RequestHeader unset Range env=bad-range
# We always drop Request-Range; as this is a legacy
# dating back to MSIE3 and Netscape 2 and 3.
RequestHeader unset Request-Range
# optional logging
# CustomLog /var/log/apache2/range-CVE-2011-3192.log common env=bad-range
" | sudo tee /etc/apache2/mods-available/headers.conf
sudo a2enmod headers
sudo /etc/init.d/apache2 restart