聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
SAML 是单点登录 (SSO) 认证协议,允许用户使用同样的凭据登录不同的服务。该漏洞是由位于 OmniAuth-SAML和Ruby-SAML 库中的一个问题引发的。GitLab 使用这些库处理基于SAML的认证。
当身份提供商向 GitLab 发送的SAML响应中包含配置不当问题或者遭操控时,就会触发该漏洞。具体而言,该漏洞涉及对 SAML 断言中关键元素的验证不充分问题,如 extern_uid(外部用户id)。攻击者可构造恶意SAML响应,诱骗 GitLab 将其识别为认证用户,绕过SAML认证并获得对 GitLab 实例的访问权限。
该漏洞影响 GitLab 17.3.3、17.2.7、17.1.8、17.0.8、16.11.10及这些分支之前的所有发布。该漏洞已在GitLab 17.3.3、17.2.7、17.1.8、17.0.8和 16.11.10中修复,即 OmniAuth SAML 已升级至2.2.1和 Ruby-SAML 升级至1.17.0。
GitLab 在安全通告中提到,“我们强烈建议所有运行受这些问题影响的版本的用户尽快升级至最新版本。”GitLab.com 上 GitLab Dedicated 实例用户无需采取任何措施,因为该漏洞仅影响自管理安装程序。
如用户无法立即升级至安全版本,则 GitLab 建议为所有用户启用双因素认证机制,并将SAML 2FA绕过选项设置为“禁止”。
虽然 GitLab 并未说明该漏洞此前是否遭利用,但在安全公告中提供了尝试或成功利用的证据,这说明恶意人员可能已经在攻击中利用了该漏洞。
尝试或成功利用的迹象如下:
-
与 RubySaml:ValidationError 相关的错误(尝试失败)
-
认证日志中新的或异常的 extern_uid值(尝试成功)
-
SAML响应中的信息缺失或不正确
-
单个用户的多个 extern_uid 值(账户可能遭攻陷)
-
与用户通常访问模式相比,来自不熟悉的或可疑 IP地址的SAML认证
GitLab 尚未说明该漏洞是否已遭在野利用。
原文始发于微信公众号(代码卫士):GitLab修复严重的 SAML 认证绕过漏洞
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论