CVE-2022-22536
SAP Multiple Products
2022-08-18
SAP NetWeaver Application Server ABAP, SAP NetWeaver Application Server Java, ABAP Platform, SAP Content Server and SAP Web Dispatcher allow HTTP request smuggling. An unauthenticated attacker can prepend a victim's request with arbitrary data, allowing for function execution impersonating the victim or poisoning intermediary Web caches.
Технический анализ и план устранения
Суть уязвимости
CVE-2022-22536 — это критическая уязвимость типа HTTP Request Smuggling (контрабанда HTTP-запросов), обнаруженная в компонентах SAP, использующих SAP Internet Communication Manager (ICM). Проблема связана с некорректной обработкой конвейерных HTTP-запросов (HTTP pipelining) и заголовка Content-Length.
Злоумышленник может отправить специально сформированный запрос, который ICM интерпретирует как два отдельных запроса. Это позволяет «подмешать» произвольные данные в начало следующего легитимного запроса другого пользователя. В результате атакующий может: * Выполнять действия от имени аутентифицированного пользователя (Impersonation). * Осуществлять захват сессий. * Отравлять кэш промежуточных прокси-серверов. * Проводить атаки типа Cross-Site Scripting (XSS) без прямого взаимодействия с жертвой.
Уязвимости присвоен максимальный балл по шкале CVSS — 10.0, так как она не требует аутентификации и может быть эксплуатирована удаленно.
Как исправить
Основным способом устранения уязвимости является установка соответствующих обновлений безопасности (Security Patch Day — February 2022). Необходимо обновить ядро SAP (Kernel) или SAP Web Dispatcher до версий, указанных в SAP Note 3123396.
1. Проверка текущей версии ядра Выполните команду для определения версии ICM:
gwread -v
Или проверьте версию через транзакцию SMICM -> Goto -> HTTP Server -> Display Version.
2. Применение исправлений Необходимо обновить компоненты до следующих минимальных уровней (или выше): * SAP Kernel 7.22: Patch Level 1100 * SAP Kernel 7.49: Patch Level 900 * SAP Kernel 7.53: Patch Level 900 * SAP Kernel 7.77: Patch Level 501 * SAP Kernel 7.81: Patch Level 201 * SAP Kernel 7.85: Patch Level 100 * SAP Kernel 7.86: Patch Level 30 * SAP Web Dispatcher 7.77: Patch Level 501 * SAP Web Dispatcher 7.81: Patch Level 201 * SAP Web Dispatcher 7.85: Patch Level 100
3. Перезапуск системы После замены исполняемых файлов ядра необходимо перезапустить инстанс SAP или процесс Web Dispatcher для вступления изменений в силу.
Временные меры
Если немедленное обновление ядра невозможно, следует применить компенсирующие меры контроля для снижения риска.
1. Использование SAP-скрипта для проверки (Health Check) SAP выпустила специальный инструмент для проверки уязвимости ваших систем. Запустите его для идентификации незащищенных узлов:
python3 check_cve_2022_22536.py
2. Настройка фильтрации на уровне Web Dispatcher или ICM Если обновление невозможно, настройте блокировку подозрительных запросов с помощью правил модификации HTTP (Rewrite Rules). Однако этот метод считается менее надежным, чем патч ядра.
3. Ограничение использования HTTP Pipelining В некоторых случаях помогает отключение поддержки keep-alive соединений или ограничение обработки нескольких запросов в одном соединении, но это может существенно снизить производительность системы.
4. Использование WAF (Web Application Firewall)
Настройте правила WAF для блокировки запросов, содержащих аномалии в заголовках Content-Length и Transfer-Encoding, а также для предотвращения десинхронизации HTTP-потока. Большинство современных WAF имеют специфические сигнатуры для защиты от Request Smuggling.