nullFaktor安全公告 <20250719>
漏洞标题
通过内部函数模块WRITE_AND_CALL_DBPROG实现ABAP代码执行
产品信息
- 受影响产品:SAP NetWeaver S/4HANA
- 主页:http://www.sap.com
- 受影响版本:S/4HANA, SAP_BASIS 757 SP 3
风险评级
- 影响程度:高
- CVSS 4.0评分:8.4
- CWE编号:
- CWE-749:暴露危险方法或功能
- CWE-94:代码生成控制不当(代码注入)
漏洞详情
在SAP S/4HANA的安全研究中,我们发现函数组SDB2中的WRITE_AND_CALL_DBPROG模块存在安全风险。该模块允许用户执行原生SQL语句,并通过INSERT REPORT将SQL代码写入报告后动态执行,整个过程缺乏输入验证和权限检查。
利用前提
攻击者需要具备执行本地函数模块的权限(包含S_DEVELOP授权且ACTVT=16)。虽然SAP声明生产系统不应分配此权限,但实际企业环境中普遍存在权限配置过大的情况。
攻击影响
- 绕过所有权限限制:可任意读写数据库数据
- 向SAP命名空间注入自定义代码
- 突破系统/客户端的不可修改性锁定
时间线
日期 | 事件描述 |
---|---|
2024-09-06 | 首次联系SAP |
2025-02-05 | 双方确认在规范配置下不构成安全风险 |
2025-07-10 | 公告发布 |
攻击场景演示
通过SE37执行以下操作:
- 创建名为Z_HACKED的报告
- 注入SQL语句:
UPDATE USREFUS SET REFUSER = 'DDIC' WHERE BNAME = 'DEVELOPER'
- 成功将超级用户DDIC关联到当前用户
SAP官方反馈
SAP认为生产系统不应分配S_DEVELOP/ACTVT=16权限,故不视作安全漏洞。建议通过SAP Note 3546011配置详细权限控制。
缓解措施
- 检查生产系统用户权限
- 禁止SE37与S_DEVELOP/ACTVT=16的组合权限
- 非生产系统需细化对象类型权限
关于nullFaktor:奥地利网络安全公司,专注SAP安全测试与咨询服务。
官网:https://www.nullfaktor.com
完整技术细节:https://www.nullfaktor.com/blog#Advisory_09-07-25