💡
原文英文,约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,以修复已知漏洞。
➡️