news 2026/3/4 9:02:20

Ruby-saml 因 XML 解析器命名空间处理差异导致SAML 认证绕过漏洞剖析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ruby-saml 因 XML 解析器命名空间处理差异导致SAML 认证绕过漏洞剖析

Ruby-saml 因命名空间处理(解析器差异)导致 SAML 认证绕过

漏洞编号:CVE-2025-66567

严重程度:严重 (CVSS 9.3)

漏洞详情

受影响的软件包:ruby-saml (RubyGems)
受影响版本:< 1.18.0
已修复版本:1.18.0

漏洞描述

摘要

在 ruby-saml 1.12.4 及更早版本中存在一个身份验证绕过漏洞。此漏洞源于对 CVE-2025-25292 的不完全修复。ReXML 和 Nokogiri 这两个 XML 解析器对同一 XML 输入会生成完全不同的文档结构,这使得攻击者能够执行签名包装(Signature Wrapping)攻击。该漏洞在 1.18.0 版本中已得到修复。

影响

此漏洞允许攻击者执行签名包装攻击,从而绕过身份验证机制。

参考信息

  • GHSA-9v8j-x534-2fx3
  • SAML-Toolkits/ruby-saml 提交记录 e9c1cdb
  • GHSA-754f-8gm6-c4r2

技术细节

漏洞根源:解析器差异

核心问题在于 Ruby 生态中常用的两个 XML 解析库——ReXML 和 Nokogiri——在处理 XML 命名空间时存在行为差异。这种差异导致它们从相同的 XML 输入构建出不同的文档对象模型结构。

攻击者可以精心构造一个 SAML 响应,利用这种解析差异来欺骗ruby-saml库的签名验证逻辑。即使 XML 签名本身在密码学上是有效的,但由于解析后的文档结构不同,库可能会错误地验证了一个并非实际由签名保护的 XML 节点,从而绕过了身份验证。

弱点分类

CWE 标识:CWE-347 - 加密签名验证不当
该产品未能验证或错误地验证了数据的加密签名。

CVSS v4.0 评分详情

  • 攻击向量 (AV):网络 (N)
  • 攻击复杂度 (AC):低 (L)
  • 攻击前提 (AT):无 (N)
  • 所需权限 (PR):无 (N)
  • 用户交互 (UI):无 (N)
  • 受影响系统的机密性影响 (VC):高 (H)
  • 受影响系统的完整性影响 (VI):高 (H)
  • 受影响系统的可用性影响 (VA):无 (N)
  • 后续系统的机密性影响 (SC):无 (N)
  • 后续系统的完整性影响 (SI):无 (N)
  • 后续系统的可用性影响 (SA):无 (N)

完整向量字符串:CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

修复与缓解

用户应立即将ruby-saml库升级到 1.18.0 或更高版本,以完全修复此漏洞。在此之前,没有已知的完整缓解措施。开发者应审查其应用程序中对 SAML 处理的依赖,并确保所有相关组件都已更新。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!