CVE-2017-12615
Apache Tomcat
2022-03-25
When running Apache Tomcat on Windows with HTTP PUTs enabled, it is possible to upload a JSP file to the server via a specially crafted request. This JSP could then be requested and any code it contained would be executed by the server.
Технический анализ и план устранения
Суть уязвимости
Злоумышленник может загрузить вредоносный JSP-файл на сервер под управлением Windows, отправив специально сформированный HTTP PUT-запрос, если в Tomcat разрешена запись файлов (readonly=false). Это возможно из-за некорректной обработки запросов, обходящей встроенную защиту. После загрузки файл выполняется сервером, что приводит к удалённому выполнению кода (RCE).
Как исправить
Обновите Apache Tomcat до одной из защищённых версий: * Tomcat 7.x → версии 7.0.81 или выше. * Tomcat 8.x → версии 8.5.20 или выше. * Tomcat 9.x → версии 9.0.0.M11 или выше.
Для Linux (Debian/Ubuntu):
# Обновите пакеты и установите фиксированную версию
sudo apt update
sudo apt install tomcat9
Для Windows: 1. Скачайте исправленную версию с официального сайта Apache Tomcat. 2. Установите обновление Microsoft Security Bulletin MSRC для вашей версии Windows, если Tomcat был установлен через установщик ОС. Конкретный номер KB зависит от версии Windows и пакета.
Временное решение
Если немедленное обновление невозможно, выполните следующие действия:
- Отключите поддержку HTTP PUT-методов в конфигурации Tomcat. В файле
conf/web.xmlнайдите сервлетDefaultServletи установите параметруreadonlyзначениеtrue(оно обычно установлено по умолчанию).xml <servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>readonly</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> - Ограничьте доступ к менеджеру приложений и хост-менеджеру с помощью настройки брандмауэра или правил аутентификации в
conf/tomcat-users.xml. - Настройте WAF (Web Application Firewall) на блокировку HTTP PUT-запросов, содержащих строки
.jspили.jspxв пути URL или теле запроса. - Перезапустите службу Tomcat после внесения изменений:
bash sudo systemctl restart tomcat9