SAP выпустила патчи для трёх уязвимостей в компонентах NetWeaver: SAP Gateway, Internet Communication Manager и Web Dispatcher. Все три получили CVSS 10.0 по версии 3.1, эксплуатировать их может неаутентифицированный атакующий с сетевым доступом. Успешная атака даёт выполнение команд ОС с правами пользователя "<sid>adm" или выполнение кода в процессе SAP, то есть полный контроль над системой. Ошибки нашла лаборатория Onapsis и объединила их в две группы: PROXYGATE и ICM2SHELL. Исправления вышли в ноябрьском Patch Day, обновляться нужно срочно, начиная с систем, доступных из интернета.
Что не так с проверкой источника и памяти
Обе группы объединяет одно: атакующему не нужны учётные данные, а пользователь ничего не заметит. Достаточно сетевого доступа к конкретному порту.
Природа ошибок при этом разная. В первом случае шлюз неверно определяет, откуда пришёл запрос, и доверяет внешнему клиенту как внутреннему. Во втором процесс SAP не проверяет длину входных данных и портит собственную память.
Для администратора это две разные процедуры проверки. В Gateway критично состояние одного файла и одного параметра. В ICM и Web Dispatcher - версия ядра и наличие WebSocket.
PROXYGATE: шлюз считает внешнего клиента внутренним сервером
Основа первой уязвимости - ошибка контроля доступа (CWE-863) в SAP Gateway. Шлюз принимает решения о доверии на основе списков ACL, и для проксирования ключевую роль играет "prxyinfo".
Он определяет, какие соединения Gateway может проксировать. Если "prxyinfo" разрешает внешние источники или файла нет вовсе, а параметр "gw/acl_mode_proxy" не равен 1, шлюз относит внешнего клиента к категории внутреннего сервера приложений.
Дальше срабатывают доверенные правила, рассчитанные на внутренние системы. Специально сформированный запрос заставляет Gateway запустить программу или команду от имени ОС. Классические "secinfo" и "reginfo" на эту цепочку не влияют, поэтому их проверка ничего не покажет.
Практический вывод простой: смотреть надо на "prxyinfo" и режим "gw/acl_mode_proxy", а не только на общие списки доступа.
ICM2SHELL: переполнение при сборке сообщений WebSocket
Вторая группа - CVE-2026-76964 в Internet Communication Manager (CWE-1287, недостаточная проверка входных данных) и CVE-2026-89126 в Web Dispatcher (CWE-122, переполнение буфера в куче).
Ошибка находится в обработке WebSocket. При сборке фрагментов сообщения данные выходят за границу памяти, отведённой под соединение. Атакующий управляет содержимым и длиной фрагментов, а процесс не сверяет их с размером буфера.
Последствий два: удалённое выполнение кода и отказ в обслуживании. WebSocket включён по умолчанию, поэтому под удар попадают и те системы, где приложения его не используют. Отдельно в списке затронутых - Web Dispatcher внутри SAP HANA XS.
Затронутые версии и исправления
Для Gateway SAP выпустила Note 3798345 и FAQ 3810197. В CVE-записи перечислены ветки 7.22 (KRNL64NUC, KRNL64UC, KERNEL), 7.22EXT, 7.53, 7.54, 7.77, 7.93, 8.04, 9.16, 9.20 и 9.21.
Исправление состоит из двух частей: обновление ядра и установка "gw/acl_mode_proxy=1". Ядра 7.93 и 9.16 поддерживают параметр. Для 7.22, 7.53, 7.54, 7.77 и 8.04 нужен патч из note, для 9.20 и 9.21 - обновление ядра. Устаревшие ядра придётся переводить на поддерживаемую ветку.
Для ICM и Web Dispatcher вышли Notes 3778530 и 3778556 и FAQ 3778788. Патчи закрывают ядра 7.53, 7.54, 7.77, 7.93, 9.16, 9.18 и 9.20, а также Web Dispatcher в составе HANA XS. В CVE-записях дополнительно указаны HDB 2.00, XS_ADVANCED_RUNTIME 1.00, SAP_EXTENDED_APP_SERVICES 1 и WEBDISP 7.53.
Если обновиться нельзя
Для ICM и Web Dispatcher есть временная мера: отключить WebSocket параметром "icm/HTTP/support_websocket_upgrade=FALSE" с последующим перезапуском. Настройка ломает интеграции, которые держатся на WebSocket, поэтому её стоит согласовать с владельцами приложений и прогнать на тестовом контуре.
Второй вариант - закрыть backend за обновлённым Web Dispatcher на более высоком patch level. Тогда запросы клиентов проходят через пропатченный компонент, а внутренний сервер недоступен напрямую.
Для Gateway включение "gw/acl_mode_proxy=1" само по себе патч не заменяет. Это часть исправления, а не альтернатива ему: без обновлённого ядра проверка остаётся неполной.
Что делать в первую очередь
Приоритет - интернет-доступные Gateway, ICM и Web Dispatcher. Порты 33NN и 48NN ограничьте на периметре, если они не должны быть видны снаружи.
Настройте контроль неожиданных перезапусков процессов "dev_icm" и "dev_webdisp". Рестарт или падение этих процессов может быть следствием попытки эксплуатации.
Onapsis не наблюдала эксплуатации этих уязвимостей в реальных атаках на момент публикации. Технические детали эксплуатации в отчёте не раскрыты, поэтому риск оценивается по доступности компонентов и по CVSS.
Первое, что стоит сделать сейчас, - инвентаризация внешне доступных Gateway, ICM и Web Dispatcher. Затем проверка "prxyinfo" на разрешённые внешние источники и порядок установки ноябрьских патчей.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2026-89103
- https://www.cve.org/CVERecord?id=CVE-2026-76964
- https://www.cve.org/CVERecord?id=CVE-2026-89126
- https://onapsis.com/blog/proxygate-cve-2026-89103-sap-netweaver-gateway-threat-advisory/
- https://onapsis.com/blog/icm2shell-cve-2026-76964-cve-2026-89126-sap-netweaver-web-dispatcher-threat-advisory/