💡 原文英文,约2800词,阅读约需11分钟。
📝

内容提要

在ruby-saml 1.17.0及之前版本中发现了严重的身份验证绕过漏洞(CVE-2025-25291和CVE-2025-25292),攻击者可利用有效签名伪造SAML断言,冒充任意用户。建议用户更新至1.18.0版本并检查依赖库。GitHub和GitLab已被通知并采取措施。

🎯

关键要点

  • 在ruby-saml 1.17.0及之前版本中发现了严重的身份验证绕过漏洞(CVE-2025-25291和CVE-2025-25292)。
  • 攻击者可以利用有效签名伪造SAML断言,冒充任意用户。
  • 建议用户更新至1.18.0版本并检查依赖库。
  • GitHub和GitLab已被通知并采取措施以保护用户。
  • ruby-saml库在单点登录(SSO)中被广泛使用,GitHub曾在2014年前使用该库。
  • GitHub因安全漏洞评估决定重新考虑使用ruby-saml。
  • 发现ruby-saml使用REXML和Nokogiri两个不同的XML解析器,可能导致身份验证绕过。
  • 解析器差异可能导致不同解析器对同一输入的不同解释,增加了安全风险。
  • 发现身份验证绕过的过程包括四个阶段:发现解析器差异、验证是否可被利用、找到实际的解析器差异、利用解析器差异创建完整的攻击。
  • SAML响应用于传输用户信息,必须进行签名验证以防止篡改。
  • ruby-saml的验证过程存在问题,导致攻击者可以伪造断言并冒充其他用户。
  • 建议检查SAML响应中的Nokogiri解析错误以防止部分已知的攻击。
  • 没有可靠的妥协指标,建议监控可疑的SAML登录活动。
  • SAML和XML签名的实现复杂,遵循规范并不一定能构建安全的实现。
  • 依赖两个不同解析器的安全上下文可能会导致错误和安全漏洞。
  • ruby-saml库的初步修复并未移除任何XML解析器,未来可能会进行重大版本更新。
  • 用户应确保更新到最新版本1.18.0,以修复已知漏洞。
➡️

继续阅读