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 и пакета.

Временное решение

Если немедленное обновление невозможно, выполните следующие действия:

  1. Отключите поддержку 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>
  2. Ограничьте доступ к менеджеру приложений и хост-менеджеру с помощью настройки брандмауэра или правил аутентификации в conf/tomcat-users.xml.
  3. Настройте WAF (Web Application Firewall) на блокировку HTTP PUT-запросов, содержащих строки .jsp или .jspx в пути URL или теле запроса.
  4. Перезапустите службу Tomcat после внесения изменений: bash sudo systemctl restart tomcat9