漏洞预警:
GitLab是一个用于仓库管理系统的开源项目,其使用Git作为代码管理工具,可以通过Web界面访问公开或私人项目,SAML(Security Assertion Markup Language,安全断言标记语言)是一种基于XML的标准,用于在不同的安全域之间交换认证和授权数据,它被广泛应用于单点登录(SSO)解决方案,OmniAuth-SAML和Ruby-SAML库在GitLab中用于处理基于SAML的身份验证,由于这些库/工具无法正确验证SAML响应的签名,导致存在SAML身份验证绕过漏洞,威胁者可以制作恶意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安装,可采取以下措施缓解漏洞利用:
1.为GitLab自管理实例上的所有用户帐户启用GitLab双因素身份验,。
注意,启用身份提供者(IdP)多因素身份验证不能缓解该漏洞。
2.不允许GitLab中的SAML双因素绕过选项。
此外,可通过在GitLab application_json和auth_json日志文件中查看和检测是否存在该漏洞的利用尝试,详情可参考:
https://about.gitlab.com/releases/2024/09/17/patch-release-gitlab-17-3-3-released/