2026 年 10 月 13 日,SAP 发布 10 月安全补丁日更新,共修复 20 个漏洞,其中 4 个为严重级。头号漏洞 CVE-2026-89111 位于 Cloud SDK for Python,是评分满分 10.0 的服务器端请求伪造(SSRF)缺陷:攻击者只要控制多租户应用传入的租户子域,就能把 SDK 发出的 OAuth2 令牌请求重定向到自己的服务器,从而窃取客户端凭据。
事件概述
本次补丁日包含 16 条新安全通告与 4 个 GitHub 安全公告。除满分的 Cloud SDK 问题外,还有:NetWeaver Visual Composer 授权缺失(CVE-2026-89110,CVSS 9.9)——低权限攻击者可在预配置的远程系统上触发内部操作,视连接配置可能导致该系统完全失陷;S/4HANA「替代与校验规则」功能输入校验不当(CVE-2026-89107,CVSS 9.9),构造的规则输入会被当作 ABAP 代码执行,可导致受影响系统完全失陷;制造集成与智能(MII)配置服务允许管理员创建提权账号(CVE-2026-89108,CVSS 9.1);Commerce Cloud SQL 注入(CVE-2026-89113,CVSS 8.8)。此外还有一个无需登录的拒绝服务漏洞(CVE-2026-58249,CVSS 7.5),可用恶意请求拖垮 NetWeaver 与 Web Dispatcher 进程。SAP 未报告任何在野利用,也未见公开利用代码。
技术细节
问题根因在 SDK 拼接 OAuth2 令牌请求 URL 时,没有校验租户子域是否为「不含 URL 分隔符的简单名称」。在受影响版本中,形如 https://<tenant_subdomain>.example/oauth/token 的地址会被直接使用,攻击者控制租户子域的取值后,client id 与 secret 便被发送到攻击者控制的端点。
修复版本 0.45.2 增加了严格校验:租户子域只能由字母、数字与连字符组成,最长 63 个字符。值得注意的是,修复本身早于公告 53 天——8 月 21 日发布的 0.45.2 在发行说明中只写成「缺陷修复」,没有安全措辞。更麻烦的是回归:0.53.0 至 0.55.0 版本在 Destination 与 Document Management Service 模块中绕过了该校验,直到 9 月 18 日的 0.55.1 才恢复。0.36 线仍缺少这层保护。
影响评估
该漏洞不需要登录,触发条件是应用把租户子域参数交给 SDK——在多租户架构中,这个值常来自请求路径或子域头,属于半可信输入。影响面是部署在 SAP 业务技术平台(BTP)上、使用该 SDK 获取 OAuth2 令牌的 Python 应用。与云服务漏洞由厂商后端代修不同,这是一个库:SAP 无法替你修,必须由团队自己升级依赖并重新部署应用。SAP 系统通常承载企业的财务、供应链与人力流程,凭据一旦外泄,横向影响远超单个应用。
修复建议
# 升级到包含租户子域校验的版本
pip install --upgrade sap-cloud-sdk
# 校验窗口:0.45.2 - 0.52.2、0.55.1 及以上
# 注意 0.53.0 - 0.55.0 存在回归,0.36 线未修复
# 临时缓解:把租户子域与已注册白名单比对后再传入 SDK
升级后应排查日志中异常的令牌请求——尤其是发往非 BTP 域名的请求;对已确认外泄的 OAuth2 客户端,立即轮换 client secret 并复核其授权范围。