Обнаружена уязвимость, позволяющая совершить MITM-атаку

Обнаружена уязвимость, позволяющая совершить MITM-атаку

Опубликована информация об уязвимости под кодовым названием Httpoxy, которая охватывает достаточно большой пласт http-серверов, но может применяться для ограниченного набора серверных web-приложений, осуществляющих обращение к внешним Web API.

Уязвимость вызвана дублированием назначения переменной окружения HTTP_PROXY, которая может быть выставлена как для определения системных настроек прокси-сервера, так и на основе трансляции переданного клиентом HTTP-заголовка "Proxy:" в соответствии с требованиями RFC 3875.

Создание системной переменной окружения HTTP_PROXY является достаточно простым способ для организации работы http-клиентов через прокси. Суть проблемы в том, что существует пласт полагающихся на переменную окружения HTTP_PROXY библиотек, которые могут использоваться в работающих на стороне сервера web-приложениях для обращения к внешним ресурсам, например, для отправки запросов к различным Web API, загрузки файлов или выполнения проверок (проверка наличия введённого URL, обращение к внешним службам аутентификации и т.п.). В случае передачи HTTP-заголовка "Proxy:" http-сервер также создаст переменную окружения HTTP_PROXY, но уже на основании данных пользователя, что позволяет направить все сетевые запросы уязвимого web-приложения через определённый прокси-сервер, передает opennet.ru.

Предположим, что имеется CGI-скрипт, отправляющий запрос к внешнему Web API для проверки параметров аутентификации клиента и использующий для отправки этого запроса библиотеку, распознающую переменную окружения HTTP_PROXY. Обращение к этому скрипту с подставным HTTP-заголовком "Proxy:" приведёт к установке переменной окружения HTTP_PROXY и запрос будет сделан не на прямую, а через IP, указанный атакующим через заголовок "Proxy:". Направив таким способом скрипт на фиктивный обработчик API, атакующий может симулировать успешную проверку или подсмотреть приватные данные, отправляемые в составе внутреннего запроса к API.

Проблема касается только web-приложений, выполняющих внешние запросы и использующих для отправки запроса проблемные HTTP-клиенты. Например, уязвимость проявляется в программах на PHP (php-fpm, mod_php - CVE-2016-5385), использующих библиотеки Guzzle 4+и Artax, в CGI-скриптах на Python (wsgiref.handlers.CGIHandler, twisted.web.twcgi.CGIScript - CVE-2016-1000110), использующих библиотекуRequests, в Apache Tomcat (CVE-2016-5388) и в программах на языке Go (net, http, cgi - CVE-2016-5386), применяющих модуль net/http. В Curl и Perl (libwww-perl) проблема была устранена ещё в 2001 году. В Ruby аналогичная уязвимость в Net::HTTP была исправлена в 2012 году.

Наиболее простым способом устранения уязвимости является блокирование обработки HTTP-заголовка Proxy на стороне http-сервера. Например, в Apache httpd достаточно воспользоваться модулем mod_headers.so и добавить директиву "RequestHeader unset Proxy early", а вnginx принудительно очистить переменную HTTP_PROXY директивой "fastcgi_param HTTP_PROXY ''". 

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

Создан PoC для дыры в W3 Total Cache, под угрозой 1 млн WordPress-сайтов

Специалисты по пентесту из германской компании RCE Security выложили в паблик PoC-эксплойт к недавно пропатченной критической уязвимости в W3 Total Cache. Администраторам сайтов рекомендуется как можно скорее обновить WordPress-плагин.

Проблема, зарегистрированная как CVE-2025-9501, позволяет без аутентификации выполнить вредоносный код в системе через инъекцию PHP-команд и перехватить контроль над сайтом. В настоящее время в интернете активны более 1 млн экземпляров W3 Total Cache.

Согласно бюллетеню WPScan, данная уязвимость возникла из-за некорректной реализации функции _parse_dynamic_mfunc, обеспечивающей выполнение кода, включенного в комментарии на кешированных страницах.

Эксплойт возможен лишь при определенных условиях. Тем не менее степень опасности уязвимости была оценена в 9 баллов по шкале CVSS — как критическая.

По словам авторов PoC-кода, для успешной атаки на целевом сайте должны отсутствовать ограничения на публикацию комментариев.

 

Авторам атаки также потребуется значение константы W3TC_DYNAMIC_SECURITY из файла wp-config.php. Дефолтное mycode или легко угадываемая комбинация значительно облегчат задачу злоумышленникам.

Наконец, в W3 Total Cache должно быть включено кеширование страниц, по умолчанию деактивированное.

 

Необходимые для эксплойта условия значительно сокращают вероятность атаки, однако в случае успеха злоумышленники смогут захватить контроль над сайтом и украсть конфиденциальные данные, установить бэкдор либо совершить иные вредоносные действия.

Спасительный патч был включен в состав сборки 2.8.13 (текущая версия плагина — 2.8.14). В качестве временной защиты эксперты советуют отключить кеширование страниц, ограничить возможность комментированная, оставив эту привилегию лишь авторизованным юзерам, а также удостовериться в надежности W3TC_DYNAMIC_SECURITY.

В уходящем году российские ИБ-эксперты зафиксировали рост числа атак на WordPress-сайты через подмену содержимого автоматически загружаемых плагинов (must-use). Подобный трюк позволяет злоумышленникам перенаправлять посетителей сайтов на другие ресурсы, устанавливать бэкдоры и внедрять вредоносный JavaScript-код, отрабатывающий в браузере.

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

RSS: Новости на портале Anti-Malware.ru