漏洞概况
GitLab是一个开源的仓库管理系统,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。它类似于GitHub,能够浏览源代码,管理缺陷和注释。
2024年1月11日,Gitlab官方披露CVE-2023-7028 GitLab 任意用户密码重置漏洞,官方评级严重。攻击者可利用忘记密码功能,构造恶意请求获取密码重置链接从而重置密码。官方已发布安全更新,建议升级至最新版本,若无法升级,建议利用安全组功能设置Gitlab仅对可信地址开放。
影响版本
16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.1 16.2 16.3 16.4 16.5 16.6 16.7
漏洞利用条件
1)需要一个系统已有用户注册邮箱地址
2)gitlab启用了邮箱登录
3)未开启多因素认证
问题点
找回密码处
接口:/users/password
漏洞复现
看gitlab的版本是否受影响
访问/assets/webpack/manifest.json接口拿到下面的hash值
访问https://github.com/righel/gitlab-version-nse/blob/main/gitlab_hashes.json 比较hash值
当Gitlab启用邮箱登录、启用SMTP时,向密码重置接口发送payload,此步骤需要掌握一个已知邮箱账户
请求包的内容为:user[email][]=目标邮箱地址&user[email][]=攻击者邮箱地址
攻击者邮箱收到该账户密码的重置邮件
攻击排查方法
?排查gitlab-rails/production_json.log日志中是否有访问/users/password接口,且参数中包含多个邮件地址
?排查gitlab-rails/audit_json.log日志中是否有PasswordsController#create的调用记录,且参数中包含多个邮件地址
修复方案
1、官方修复方案:
目前官方已发布最新补丁,请尽快前往下载更新:GitLab Critical Security Release: 16.7.2, 16.6.4, 16.5.6|GitLab
2、临时修复方案:
非必要,不要将GitLab开放到公网如果GitLab开放到公网,可为所有 GitLab 帐户启用双因素身份验证
参考链接
https://blog.csdn.net/m0_64366018/article/details/135566325
https://x.threatbook.com/v5/article?threatInfoID=100632
专注分享安全知识,大家可以关注一下我的微信公众号,谢谢大家!