2026 年 9 月 11 日,GitLab 发布紧急安全补丁,修复了一个路径遍历漏洞:CVE-2026-85706,CVSS 10.0。Repository Commits API 没做路径校验,未经身份认证的攻击者可以直接读取服务器上的任意文件。

GitLab 服务器遭遇路径遍历攻击,文件被批量拖走

watchTowr 的威胁情报显示,披露当天 UTC 06:00,就已经出现了针对企业基础设施的野外利用扫描。注意这个时间线:补丁发布和全网扫描发生在同一天。上一篇我们说”漏洞从披露到被利用只要 4 天”,这一次连 4 天都没给——你的补丁窗口是按小时算的。

披露、野外扫描、打补丁发生在同一天

为什么 DBA 必须在乎

因为这个漏洞偷的不是 GitLab 本身,是 GitLab 服务器上的所有文件。想想你的自建 GitLab 服务器上躺着什么:

  • CI/CD 变量里的生产数据库连接串、账号密码
  • 应用仓库里的 config/database.yml、.env
  • 备份脚本里写死的明文密码
  • SSH 私钥、TLS 证书、/etc/passwd

一次未授权的任意文件读取,等于攻击者把你的服务器当成了自家文件柜,挨个抽屉翻。数据库账号密码这种东西,一旦进了攻击者的字典,就得按”已泄露”处理——改不改密码都一样,先假设它已经出去了。

自查三步,照着做

DBA 自查清单:版本、暴露面、轮换凭证

1. 看版本。 18.7 ≤ v < 19.1.8、19.2 ≤ v < 19.2.6、19.3 ≤ v < 19.3.2,在范围里就中招。修复版本:19.1.8 / 19.2.6 / 19.3.2,对号入座升级。

2. 看暴露面。 GitLab 是否直接暴露在公网?watchTowr 观测到的是全网无差别扫描,公网实例是第一批目标。不在公网不代表安全——内网横向之后同样能打到,但公网的是最高优先级。

3. 打补丁后轮换凭证。 补丁只能堵住未来的读取,堵不住已经读走的东西。CI/CD 变量、数据库密码、API token,全部按”已泄露”处理轮换一遍。顺手查一下访问日志,看有没有异常的文件读取请求——看到 ../ 满天飞的,就可以准备应急响应了。

补丁窗口又没了

从”4 天”到”当天”,留给运维的窗口一直在缩。自建 GitLab 这种”平时没人管、出事全公司陪葬”的基础设施,最值得列个清单定期扫一遍版本和暴露面。别等到数据库连接串出现在暗网打包文件里,才想起那台 GitLab 三年没升级了。


现在全免费——dbcheck.org,上传就能拿完整 Word 报告。扫出来的问题搞不定?云和恩墨有 7×24 商业数据库维保兜底:https://enmotech.com

原文作者: liups.com

原文链接: http://liups.com/posts/c4c2ddd0/

许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议