一个CVSS评分打到10.0的漏洞,在GitLab身上被确认利用了。这不是理论推演,安全公司watchTowr的说法是,漏洞披露短短数小时内,攻击者就已经在互联网上开始探测。
编号CVE-2026-85706,性质是路径遍历。影响面是自托管版GitLab CE/EE,未认证的远程攻击者可以读取服务器上的任意文件。远程、未认证、任意文件,三个词叠在一起,意味着攻击者不需要任何账号就能动手。
一个公开项目就够了
watchTowr的Jake Knott把前置条件说得很直白:实例只要存在一个公开项目,之后的攻击无需任何身份认证。这句话的分量在于,很多团队的自托管GitLab上,公开项目几乎是默认存在的。
漏洞的成因指向仓库提交接口——路径限制不当,缺少身份校验。在特定条件下,未认证用户就能读到GitLab服务器上的任意文件。
受影响版本范围覆盖三条线:
- 18.7 至 19.1.7
- 19.2 至 19.2.5
- 19.3 至 19.3.1
该漏洞由Mohamed Abdelaiz上报,GitLab在9月11日发布补丁。随后,美国网络安全与基础设施安全局(CISA)将其收录进已知被利用漏洞(KEV)目录。进入KEV目录,等于官方认定这个漏洞在野被真实使用过。
补丁只是补救的一半
能读到什么?首席信息安全官Parker Brisette列了清单:CI/CD变量、运行器令牌,以及日志中记录的敏感内容。这些不是普通文件,是能打开下一扇门的钥匙。
网络安全高管Christopher Houser的提醒更直接:打补丁只能阻止新的文件读取行为,但无法撤销攻击者已经窃取的部署令牌、CI变量以及SSH密钥。他的建议是轮换这些凭据,同时核查在旧凭据仍有效期间,构建任务拉取过哪些软件包和镜像。
Reddit用户GuffariBranderr8补充了另一层风险:如果敏感配置或CI/CD凭据遭到泄露,攻击者有可能横向渗透到其他系统。所以除了打补丁,限制公网暴露范围、轮换已泄露密钥都必须纳入应急处置流程。
watchTowr给出的排查方法很具体:检索日志,查找访问/api/v4/projects/{id}/repository/commits/且携带file.path参数的HTTP POST请求,以此识别潜在的漏洞攻击尝试。
升级到哪个版本
自托管实例的修补路径是升级到19.3.2、19.2.6或19.1.8,视当前版本而定。
在初始补丁发布两周后,GitLab把修复代码向后移植到了社区版(CE)和企业版(EE)的19.0.9和18.11.12版本。需要注意,这两个版本均已停止支持。
攻击者能借这个漏洞进一步入侵系统、破坏CI/CD流水线,还可能访问GitLab能够连通的其他业务系统。一个未认证的文件读取入口,通向的是整条交付链路。
热门跟贴