一、 漏洞介绍
GitLab发布社交媒体版(CE)及企业版(EE)的17.3.3、17.2.7、17.1.8、17.0.8、16.11.10版更新,其中修补CVSS风险程度达到满分(10分)的漏洞CVE-2024-45409,这项漏洞能用于绕过SAML身份验证机制,存在于Ruby SAML程序库组件Ruby-SAML,攻击者可在未经身份验证的情况下,利用漏洞访问已由身份验证提供者(IdP)签署的SAML文件,进而伪造SAML的回应。
这项漏洞发生的原因,在于Ruby-SAML无法正确验证SAML回应的签章,影响1.13.0至1.16.0版,以及12.2版以下的Ruby-SAML。对此,GitLab在公告中指出,IT人员应套用上述新版,或是手动将相依组件进行更新:omniauth-saml升级为2.2.1版、ruby-saml升级为1.17.0版,就能缓解漏洞带来的危险。
二、 基本情况
GitLab是一个用于仓库管理系统的开源项目,其使用Git作为代码管理工具,可以通过Web界面访问公开或私人项目。SAML(Security Assertion Markup Language,安全断言标记语言)是一种基于XML的标准,用于在不同的安全域之间交换认证和授权数据,它被广泛应用于单点登录(SSO)解决方案。
三、 漏洞描述
GitLab中修复了一个SAML身份验证绕过漏洞(CVE-2024-45409),该漏洞的CVSS评分为10.0。
OmniAuth-SAML和Ruby-SAML库在GitLab中用于处理基于SAML的身份验证,由于这些库/工具无法正确验证SAML响应的签名,导致存在SAML身份验证绕过漏洞(CVE-2024-45409),威胁者可以制作恶意 SAML 响应从而绕过SAML身份验证并获得对GitLab实例的访问权限。
四、 影响范围
GitLab CE/EE 17.3.x < 17.3.3
GitLab CE/EE 17.2.x < 17.2.7
GitLab CE/EE 17.1.x < 17.1.8
GitLab CE/EE 17.0.x < 17.0.8
GitLab CE/EE 16.11.x < 16.11.10
OmniAuth-SAML和Ruby-SAML依赖项:
omniauth-saml <= 2.1.0
ruby-saml <= 1.12.2
1.13.0 <= ruby-saml <= 1.16.0
五、 修复建议
目前该漏洞已经修复,受影响用户可升级到以下版本:
GitLab CE/EE 17.3.x >= 17.3.3
GitLab CE/EE 17.2.x >= 17.2.7
GitLab CE/EE 17.1.x >= 17.1.8
GitLab CE/EE 17.0.x >= 17.0.8
GitLab CE/EE 16.11.x >= 16.11.10
或将OmniAuth-SAML和Ruby-SAML依赖项升级到以下修复版本:
omniauth-saml:升级到2.2.1、2.1.2、1.10.5或更高版本
ruby-saml:升级到1.17.0、1.12.3或更高版本
下载链接:
https://about.gitlab.com/
六、临时缓解方案
对所有用户启用GitLab双因素身份验证且不勾选SAML双因素绕过选项。
七、 参考链接
https://about.gitlab.com/releases/2024/09/17/patch-release-gitlab-17-3-3-released/
https://github.com/SAML-Toolkits/ruby-saml/security/advisories/GHSA-jw9c-mfg7-9rx2
https://github.com/omniauth/omniauth-saml/security/advisories/GHSA-cvp8-5r8g-fhvq
【安全圈】Meta、YouTube等巨头被曝长期监视未成年用户,牟利数十亿美元
【安全圈】洋葱路由(Tor)也并不是完全安全的 执法机构利用时序分析追溯特定用户
【安全圈】黎巴嫩再发生爆炸事件,这次是对讲机
【安全圈】小米摄像头里惊现陌生男子说话!小米回应来了
【安全圈】115 网盘回应故障:服务器遭遇恶意网络攻击,“终止服务”系谣言