CVE-2016-3976
SAP NetWeaver
2021-11-03
SAP NetWeaver Application Server Java Platforms contains a directory traversal vulnerability via a ..\ (dot dot backslash) in the fileName parameter to CrashFileDownloadServlet. This allows remote attackers to read files.
Технический анализ и план устранения
Суть уязвимости
Уязвимость в компоненте CrashFileDownloadServlet SAP NetWeaver AS Java позволяет удаленному злоумышленнику выполнить обход корневого каталога (Directory Traversal) с помощью последовательности ..\ в параметре fileName HTTP-запроса. Это приводит к несанкционированному чтению произвольных файлов на сервере.
Пример эксплуатации:
GET /ctc/CrashFileDownloadServlet?fileName=..\..\..\..\windows\win.ini HTTP/1.1
Host: target-sap-server:port
Как исправить
Установите официальный патч от SAP. Необходимая версия исправления зависит от версии вашего SAP NetWeaver AS Java.
- Определите точную версию ядра SAP: Войдите в систему и выполните транзакцию
ST-A/PI. Или проверьте файлdisp+workв каталогеworkдиспетчера. - Установите соответствующий патч SAP Note:
- SAP Note 2134865 — основной патч для устранения уязвимости.
- SAP Note 2240360 — может содержать дополнительные корректировки.
- Процесс установки (пример для Linux):
- Загрузите патч с портала SAP Support (
service.sap.com/patches). - Остановите соответствующий экземпляр Java:
bash sapcontrol -nr <instance_number> -function Stop - Установите патч с помощью
SAPCARиJSPM(Java Support Package Manager). - Запустите экземпляр:
bash sapcontrol -nr <instance_number> -function Start
- Загрузите патч с портала SAP Support (
Ключевые исправленные версии ядра (Kernel): * SAP Kernel 7.21, 7.22, 7.45, 7.49: Установите патч уровня Patch 120 или выше. * Для более старых версий (7.21-7.22) обязательна установка SAP Note 2134865.
Временное решение
Если немедленная установка патча невозможна, примените следующие меры:
-
Настройте WAF (Web Application Firewall):
- Добавьте правило для блокировки HTTP-запросов, содержащих последовательности
..\и../в параметрах (особенно вfileName,pathи т.д.). - Пример правила для ModSecurity:
SecRule ARGS_NAMES "@rx \.\.(\\|\/)" "id:1001,phase:2,deny,msg:'Directory Traversal Attack Attempt'"
- Добавьте правило для блокировки HTTP-запросов, содержащих последовательности
-
Ограничьте сетевой доступ:
- Настройте групповые политики (GPO) или
iptables/брандмауэр ОС так, чтобы доступ к портам SAP NetWeaver AS Java (по умолчанию, например, 5XX00-5XX99) был только из доверенных подсетей (сегмента для пользователей и администраторов). - Пример для
iptables:bash iptables -A INPUT -p tcp --dport 50000:50100 -s <trusted_network>/24 -j ACCEPT iptables -A INPUT -p tcp --dport 50000:50100 -j DROP
- Настройте групповые политики (GPO) или
-
Отключите сервлет (крайняя мера):
- Удалите или переименуйте файл
CrashFileDownloadServletв директории развертывания веб-приложений (/usr/sap/<SID>/<instance>/j2ee/cluster/server*). Внимание: Это может нарушить функциональность сбора диагностических данных. Создайте резервную копию файла перед удалением.
- Удалите или переименуйте файл