当前位置: 首页 > news >正文

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智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

http://www.jsqmd.com/news/71240/

相关文章:

  • 准确率和召回率的平衡点
  • 按DDD领域分析Openfeign
  • Python threading.Lock() thread lambda
  • Python 面向对象编程 (OOP) 核心:类、封装与继承
  • 12/10
  • 完整教程:分享一个基于服务端地图服务裁剪的方法
  • Nginx安全配置
  • 并发编程的三大基石:从底层逻辑聊透“同步、互斥与分工”
  • 个人电脑本地私有知识库解决方案:访答知识库全面解析
  • 【Agent】MemOS 源码笔记---(4)---KV Cache
  • 2025.12.10
  • 大数据存储新范式:RustFS与Hadoop生态无缝集成实战指南
  • Ai元人文构想:黑箱之渡,白箱之锚——大行为模型践行意义行为原生
  • 在 .Net 8 WEBAPI 中实现实体框架的 Code First 办法
  • 60
  • Coppersmith 学习笔记
  • python —— 树的遍历 —— 深度优先遍历(先序、中序、后序) —— 非递归方式(使用栈数据结构进行辅助)
  • 【SQL技术】不同数据库引擎 SQL 优化方案剖析 - 详解
  • IntelliJ IDEA 最常用的快捷键
  • C++ 循环结构:控制程序重复执行的核心机制 - 教程
  • ASP.NET 实战:用 CSS 选择器打造一个可搜索、响应式的书籍管理系统 - 教程
  • Python list all files in dir recursivelly
  • python —— 树的遍历 —— 深度优先遍历(先序、中序、后序)
  • springAI集成智谱--流式输出
  • python —— 满二叉树的广度优先遍历
  • 切比雪夫多项式与数值最优化算法收敛率的关系
  • 恰好被k个区间覆盖的点的数量
  • Day59(29)-F:\vs_ai_work\vue-tlias-management
  • windriver 第5章:USB 概述
  • Airflow - from airflow import DAG and from airflow.sdk import DAG, which one is better?