Ruby-saml 允许通过Libxml2规范化错误绕过摘要/签名验证
平台
-
GitHub Copilot
-
GitHub Spark
-
GitHub Models
-
GitHub Advanced Security
-
Actions
-
Codespaces
-
Code Review
-
Discussions
-
Code Search
漏洞详情
包
- bundler
- ruby-saml (RubyGems)
受影响的版本 < 1.18.0
已修复的版本 1.18.0
描述
摘要 Ruby-saml 在 1.12.4 及之前版本中存在一个身份验证绕过漏洞,该漏洞源于 Nokogiri 用于文档转换的 libxml2 规范化处理过程中的一个问题。这使得攻击者能够执行签名包装攻击。该漏洞不影响 1.18.0 版本。
详情 当对无效的 XML 输入调用 libxml2 的规范化功能时,它可能返回一个空字符串,而不是一个规范化的节点。然后,ruby-saml 继续基于这个空字符串计算 DigestValue,仿佛规范化已成功完成。
影响
- 摘要绕过:通过精心构造导致规范化产生空字符串的输入,攻击者可以操纵验证过程,使其错误地通过。
- 基于空规范形式的签名重放:如果一个空字符串曾经被签名过(例如,在先前的交互中或通过配置错误的流程),那么该签名有可能被重放以绕过身份验证。
参考
- GHSA-x4h9-gwv3-r4m4
- SAML-Toolkits/ruby-saml@acac9e9
严重程度
关键 9.3
CVSS v4 基础指标 可利用性指标
- 攻击向量:网络
- 攻击复杂度:低
- 攻击要求:无
- 所需权限:无
- 用户交互:无
脆弱系统影响指标
- 机密性:高
- 完整性:高
- 可用性:无
后续系统影响指标
- 机密性:无
- 完整性:无
- 可用性:无
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
弱点
- 弱点:CWE-347
- 说明:不正确的加密签名验证 - 产品未验证或错误地验证了数据的加密签名。
CVE ID CVE-2025-66568
GHSA ID GHSA-x4h9-gwv3-r4m4
源代码 SAML-Toolkits/ruby-saml
致谢
- d0ge (报告者)