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.

  1. Определите точную версию ядра SAP: Войдите в систему и выполните транзакцию ST-A/PI. Или проверьте файл disp+work в каталоге work диспетчера.
  2. Установите соответствующий патч SAP Note:
    • SAP Note 2134865 — основной патч для устранения уязвимости.
    • SAP Note 2240360 — может содержать дополнительные корректировки.
  3. Процесс установки (пример для 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

Ключевые исправленные версии ядра (Kernel): * SAP Kernel 7.21, 7.22, 7.45, 7.49: Установите патч уровня Patch 120 или выше. * Для более старых версий (7.21-7.22) обязательна установка SAP Note 2134865.

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

Если немедленная установка патча невозможна, примените следующие меры:

  1. Настройте WAF (Web Application Firewall):

    • Добавьте правило для блокировки HTTP-запросов, содержащих последовательности ..\ и ../ в параметрах (особенно в fileName, path и т.д.).
    • Пример правила для ModSecurity: SecRule ARGS_NAMES "@rx \.\.(\\|\/)" "id:1001,phase:2,deny,msg:'Directory Traversal Attack Attempt'"
  2. Ограничьте сетевой доступ:

    • Настройте групповые политики (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
  3. Отключите сервлет (крайняя мера):

    • Удалите или переименуйте файл CrashFileDownloadServlet в директории развертывания веб-приложений (/usr/sap/<SID>/<instance>/j2ee/cluster/server*). Внимание: Это может нарушить функциональность сбора диагностических данных. Создайте резервную копию файла перед удалением.