【漏洞通报】GitLab漏洞

2024-09-23

漏洞情况

近期,火山信安实验室监测到GitLab存在一处严重的SAML身份验证绕过漏洞(CVE-2024-45409)。该漏洞源于GitLab中使用的OmniAuth-SAML和Ruby-SAML库无法正确验证SAML响应的签名,使得攻击者能够制作恶意的SAML响应,从而绕过SAML身份验证机制,获取对GitLab实例的未授权访问权限。这一发现引起了广泛的关注和重视。

0x01漏洞简介

SAML(Security Assertion Markup Language)是一种基于XML的标准,用于在不同的安全域之间交换认证和授权数据,被广泛应用于单点登录(SSO)解决方案。GitLab通过OmniAuth-SAML和Ruby-SAML库来处理基于SAML的身份验证。然而,由于这些库在处理SAML响应时存在签名验证不严格的问题,攻击者可以构造伪造的SAML响应,绕过身份验证机制,实现对GitLab实例的访问。

0x02影响范围

该漏洞影响了多个版本的GitLab CE/EE,具体受影响版本如下:

  • 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

0x03修复建议

为了缓解该漏洞带来的风险,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.2.1、2.1.2、1.10.5 或更高版本

  • ruby-saml 升级到 1.17.0、1.12.3 或更高版本

此外,GitLab还建议用户对所有账户启用双因素身份验证(2FA),并禁止SAML双因素绕过选项,以增强账户的安全性。


分享