CVSS10分Gitlab漏洞究竟能不能读任意文件?

admin 2026-09-14 04:42:14 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 该文分析GitLabCVE-2026-85706漏洞,结论是无法读取任意文件,但可泄露部分配置文件如gitlab.yml片段和redis.conf,存在一定危害,建议升级。漏洞由认证顺序错误等四环节叠加导致,回显受内容、文件、截断和长度限制。官方已发布修复方案,临时缓解措施包括WAF拦截规则和限制访问。 综合评分: 88 文章分类: 漏洞分析,漏洞预警,解决方案,安全工具


CVSS10分Gitlab漏洞究竟能不能读任意文件?

原创

微步情报局 微步情报局

微步在线研究响应中心

2026年9月12日 11:36 北京

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

一、背景

GitLab 是全球广泛使用的一体化 DevSecOps 平台,提供代码托管、代码评审、CI/CD 流水线、制品库、安全扫描等能力,分为开源社区版(CE)与企业版(EE),被大量企业以 self-managed 方式私有化部署。

近日,关于GitLab CE/EE 仓库提交 API 路径遍历漏洞(CVE-2026-85706)讨论热度较高,部分媒体声称该漏洞可读任意文件,CVSS满分。

二、先说结论

该漏洞无法读取并回显服务器上的任意文件,具体受限的条件请见第四节。但是漏洞存在一定危害,依然建议升级。

经过实测,攻击者能读取到的有:

  • gitlab.yml的配置片段(非完整配置文件,会截断。会不会泄露凭据将取决于凭据在不在截断之前)
  • 几乎整个redis.conf

上述配置文件泄露后,攻击者可借助gitlab token投毒和获取redis等凭据进行进一步对redis攻击。

CISA已将该漏洞标记为“已知在野利用”,建议受影响的用户尽快修复。

三、漏洞原理是什么

漏洞由四个环节叠加:

  1. 漏洞所在sink 之前只有项目读授权,没有用户认证。用户认证在文件读取完成之后才被调用——认证存在,但顺序错了。
  2. Workhorse 对所有代理请求都注入内部 JWT,require_gitlab_workhorse! 照常通过。结果是攻击者的原始表单参数不经重写直达 Rails。
  3. 攻击者可控参数直接进 File.read,无任何路径约束,绝对路径即可,无需 ..
  4. 报错信息把文件内容带回响应。 目标文件内容含非法百分号编码(% 后非两个十六进制字符)时,会将其写入 400 响应体。内容不含 % 的文件不回显。

四、回显的限制

根据漏洞原理可知,该漏洞回显的限制有:

  • 内容限制:目标文件内容含非法百分号编码(% 后非两个十六进制字符)时会回显,否则只会 401,无法回显。
  • 文件限制:git 对该文件能 stat + read
  • 截断限制:GitLab使用的Rack 2.2.23,Rack的参数分隔符是&;。所以整份文件会当form 字符串,然后按 & / ; 切开,每段再按第一个分成 key/value,分别 URI.decode_www_form_component。非法 % 只发生在当前这一段上,e.message 里也只有这一段。
  • 长度限制:Rack默认解析上限为4M(RACK_QUERY_PARSER_BYTESIZE_LIMIT=4194304),只有 ≤ 4MB 的内容走 invalid %-encoding (…) 回显。

例如,当文件内容为:

invalid %-encoding BEFORE_AMP&AFTER_AMP

回显的内容为:(&后面的会被截断)

{"message":"400 Bad request - Invalid parameter: invalid %-encoding (invalid %-encoding BEFORE_AMP)"}

五、漏洞影响范围

GitLab CE/EE版本 18.7<=version<19.1.8,19.2<=version<19.2.6,19.3<=version<19.3.2受影响。

六、漏洞复现

七、修复方案

官方修复方案

官方已发布修复方案,请访问链接下载:

https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-3-2-released/

临时缓解措施

  • 短期无法升级时,在流量入口(WAF / 前置反向代理)添加拦截规则:对路径匹配 ^/api/v4/projects/[^/]+/repository/commits(.[A-Za-z0-9]+|/)$ 且方法为 POST 的请求阻断。
  • 将 GitLab Web 入口或 /api/v4 限制为信任网段/VPN 访问,缩小未授权攻击面。

八、微步产品支撑

微步漏洞情报于2026-09-11收录该漏洞。

微步下一代威胁情报平台NGTIP及X情报中心已于漏洞收录时向漏洞订阅用户推送该漏洞情报,并将持续推送后续更新;对于已经录入资产的用户,支持实时自动化排查受影响资产。

微步威胁感知平台TDP已于 20260911 支持检测,检测ID: S3100184457 ,模型/规则高于: 2026091100000  可检出。

微步威胁防御系统OneSIG已支持防护,规则ID为:3100184457


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:微步在线研究响应中心 微步情报局 微步情报局《CVSS10分Gitlab漏洞究竟能不能读任意文件?》

每周勒索威胁摘要 网络安全文章

每周勒索威胁摘要

文章总结: 本周勒索威胁摘要显示clop、Eclipse及VexyRansomware三个勒索团伙在暗网公布新受害公司,涉及美国制造、法律服务和东南欧电信行业。
评论:0   参与:  0