未认证绕过登录:SAP 一天 4 个 10.0 分漏洞
原创
红队安全圈
红队安全圈
红队安全圈
2026年11月10日 20:00
重庆
去阅读
30 秒看懂
影响范围 · SAP NetWeaver 底座的四个组件:SAML2 服务提供者、ICM、Gateway、Web Dispatcher。SAP\_BASIS 702 至 922、内核 7.22 起的一大批版本
利用状态 · 未在野利用,无公开 PoC;四条 10.0 里三条不需要任何账号,Gateway 那条是出厂默认状态
补丁状态 · 已修11 月 10 日补丁日共 38 条笔记,四条 10.0 分别是 3849308、3778530、3798345、3778556
分数不是重点。四个 10.0 里有三个不需要任何凭据,其中一个还是出厂默认状态——你没有配错,它本来就长这样。
01 事情是什么
11 月 10 日是 SAP 的月度安全补丁日。这次一共 38 条笔记:9 条 HotNews、13 条 High、15 条 Medium、1 条 Low。38 条里有 4 条直接顶到 CVSS 10.0,向量完全一致:AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H。网络可达、不要凭据、不要用户点、影响还能溢出到相邻系统。
四条全在底座,没有一条在业务模块里:SAML2 服务提供者、ICM、SAP Gateway、Web Dispatcher。另有 17 条修复落在内核和独立 Web Dispatcher 上,所以对多数环境来说,这个月其实是一次内核加 Web Dispatcher 的滚动升级就能收口的事。
这 4 个 10.0 是 SAP 作为自家 CNA 给自己判的分,向量整齐得像复制粘贴。分数一样不代表修法一样,后面分开说。
02 四个满分洞,坏的地方各不相同
SAML2:伪造一条断言就是一次合法登录
SAP\_BASIS 702 到 758、816、920 到 922 的 ABAP 系统,只要开了 SAML2 单点登录就在射程里。SP 在处理进来的身份断言时对签名校验不到位,归到 CWE-347。攻击者自己造一条断言发过去,SAP 认了,而且这次登录在日志里是一次成功的、合法的认证事件。
公开记录只说在某些配置下,没说是哪些配置——细节在 SAP for Me 的笔记里,没有 S 账号看不到。稳妥的判断只有一个:ABAP 开了 SAML2 SSO,就按受影响算。这条没有 workaround。
ICM 与 Web Dispatcher:同一类问题长在两个相邻组件上
CVE-2026-76964 在 ABAP 的 ICM 里,CVE-2026-89126 在独立 Web Dispatcher 里,都是畸形网络输入触发内存破坏,未认证直接走到代码执行,分别归 CWE-1287 和 CWE-122。Web Dispatcher 那条还连带 HANA 的 XS Classic 和 XS Advanced 自带的 Web Dispatcher。关掉 WebSocket 能挡,但会断功能,等于逼你打补丁。
Gateway:出厂就已经在信任陌生人
CVE-2026-89103 不是一个写错的缓冲区,是默认 ACL 以高权限生效,把外部未认证的请求归成 internal application server 这一类。翻译一下:按安装指南装完、什么都没动的系统,恰好就是受影响的那一类。
修法是更新内核并在 7.77 以下补上 gw/acl\_mode\_proxy,另外 secinfo 和 reginfo 里要有明确的规则。
03 为什么危险:从一条断言到主机
SAML2 那条链最短。冒名一个管理员账号登进去,拿到的是真会话,不是只读面板:
· SE38 建一个可执行程序,ABAP 侧的任意代码就有了
· SM49 或 SM69 调外部命令,落到操作系统
· RFC 目标里挂着的那些系统,用同一个身份继续横向
Gateway 那条更省事,未认证请求直接被当作内部应用服务器。历史上 Gateway 到 RFC 调用再到命令执行的路子一直是通的,这次连假装成内部服务器那一步都省了。
两个内存破坏的洞卡在边界上:ICM 和 Web Dispatcher 是所有 ABAP 流量进门的第一跳,破了它们,后面的应用才刚开始算。
04 谁受影响
四条覆盖的版本范围不一样,别只看自己装的 SAP\_BASIS。
SAML2SAP\_BASIS 702、731、740、750 至 758、816、920 至 922,且启用了 SAML2 SP
ICMKRNL64UC 7.53;KERNEL 7.53、7.54、7.77、7.93、9.16、9.18、9.20
GatewayKRNL64NUC 7.22、7.22EXT;KRNL64UC 7.22、7.53、8.04;KERNEL 7.22、7.54、7.77、7.93、9.16、9.20、9.21
WebDispWEBDISP 7.53 至 9.16;另含 HDB 2.00、XS\_ADVANCED\_RUNTIME 1.00、SAP\_EXTENDED\_APP\_SERVICES 1
清单里 7.22 这种老内核还在。这类系统的可达性往往几年没人测绘过,恰好是最容易被默认配置那一类打中的。
还有三条 9.9 需要低权限,同样落在这个批次里:S4CRM 的输入校验缺失导致代码注入(CVE-2026-109795)、知识管理 XML Forms 的 XSL 变换处理(CVE-2026-109803)、SAPFTP over RFC 的 OS 命令执行(CVE-2026-76965)。再加 Web Dispatcher 和 ICM 管理界面的 CSRF,9.6,要管理员点一下。对已经拿到一个普通账号的人来说,这是四条各自独立的提权路。
05 怎么修
-
先打四条 10.0 的笔记,顺序按可达性排:对外的 Gateway、Web Dispatcher、ICM 优先
-
关掉 Gateway 默认 ACL,给可信系统写明确规则,改完去 SMGW 里核对 ACL,而不是只确认笔记打上了
-
内核和 Web Dispatcher 一起升,升完重启相关服务——只装 SP 不重启,跑的还是旧二进制
-
所有开了 SAML2 的 ABAP 系统过一遍配置,没在用的 SP 直接停掉
-
暂时打不上的先收网络,只放可信来源访问 ICM、Web Dispatcher、Gateway 端口
-
顺手清一遍能调 remote-enabled 功能的低权限账号,三条 9.9 全靠它进门
打完还要看一眼痕迹。SAML2 被利用的现场是一条成功登录,账号主人解释不了的那种,重点看管理员账号从陌生网段、陌生 UA 登进来。内存破坏的现场更安静,ICM 或 Web Dispatcher 进程重启一次,日志里可能什么都没有。这两种都印证同一句话:留得下来的是配置和版本,不是日志行。
内核版本和 Gateway ACL 参数这样核:
sapcontrol -nr 00 \
-function GetVersionInfo
Gateway ACL 相关参数
gw/acl\_mode
gw/acl\_mode\_proxy
06 一句判断
值得连夜修的只有 SAML2 和 Gateway 两条,而且今晚就能判断:前者直接冒充管理员,后者出厂就敞着。ICM 和 Web Dispatcher 的内存破坏目前没有公开 PoC,风险更多在长期暴露面,塞进这个月的变更窗口不算失职。
但要记住一件事:四条 10.0 是三种修法。SAML2 是配置审查,Gateway 是 ACL 配置,ICM 和 Web Dispatcher 是内核更新。当一个工单处理,最后只会关掉一条。
07 补丁地址
SAML2 Note 3849308
ICM Note 3778530
Gateway Note 3798345
WebDisp Note 3778556
https://me.sap.com/notes/3849308
https://me.sap.com/notes/3778530
https://me.sap.com/notes/3798345
https://me.sap.com/notes/3778556
SAP 笔记需要 S 账号登录才能看全文,没有账号时先按版本范围核对可达性。
下期继续蹲厂商补丁和 PoC 动静,关注后漏洞先知道,修复不踩坑。
— END —
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论