大工网安告[2025010]
一、 情况分析
ruby-saml是GitLab用于实现SAML单点登录功能的Ruby工具包,通过OmniAuth-SAML进行集成,帮助用户实现便捷的身份验证和访问控制。
近日,官方修复ruby-saml身份认证绕过漏洞(CVE-2025-25291、CVE-2025-25292),ruby-saml使用了两种XML解析器ReXML和Nokogiri,由于解析XML的方式不同导致签名验证错误从而产生身份验证绕过。在GitLab中存在此漏洞实例。鉴于该漏洞影响范围较大,建议大家尽快做好自查及防护。
威胁类型:身份认证绕过。
技术类型:加密签名验证不当。
利用条件:无
危害描述:ruby-saml使用了两种XML解析器ReXML和Nokogiri,由于解析XML 的方式不同导致签名验证错误从而产生身份验证绕过。
二、 影响版本
ruby-saml <= 1.12.3
1.13.0 <= ruby-saml < 1.18.0
omniauth-saml <= 2.2.2
omniauth-saml <= 1.10.5
其他受影响资产:
GitLab CE/EE < 17.7.7
GitLab CE/EE 17.8.* < 17.8.5
GitLab CE/EE 17.9.* < 17.9.2
三、 处置建议
修复解决方案(含漏洞补丁):
目前官方已发布安全更新,建议用户尽快升级至最新版本:
ruby-saml >= 1.12.4
ruby-saml >= 1.18.0
omniauth-saml >= 1.10.6
omniauth-saml >= 2.2.3
官方补丁下载地址:
https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.12.4
https://github.com/SAML-Toolkits/ruby-saml/releases/tag/v1.18.0
由于GitLab 中存在此漏洞实例,建议将GitLab CE/EE升级到安全版本:
GitLab CE/EE >= 17.7.7
GitLab CE/EE 17.8.* >= 17.8.5
GitLab CE/EE 17.9.* >= 17.9.2
官方补丁下载地址:
https://about.gitlab.com/update
缓解措施:
1.启用GitLab的双因素身份认证(2FA),并确保所有用户启用该功能;
2.禁用SAML的双因素身份认证绕过选项;
3.配置gitlab_rails['omniauth_block_auto_created_users'] = true,要求管理员审批自动创建的用户。