事件概述
近日,代码托管平台 GitLab 修复了一个被评定为最高分 CVSS 10.0 的严重漏洞 CVE-2026-85706。该漏洞位于 GitLab CE/EE(社区版与企业版)仓库提交相关 API 的文件上传链路:服务端直接信任请求中传入的文件路径元数据并据此读取本地文件,而对应端点在执行读取前又缺少身份校验。两个缺陷叠加后,远程攻击者无需任何账号,仅需构造一个普通的 HTTP 请求,就有可能读取 GitLab 服务器上的任意文件。
漏洞于 9 月 10 日随补丁版本 19.3.2、19.2.6、19.1.8 一同修复,但公开后极短时间内就出现了多个公开利用代码,CISA 也于 9 月 11 日将其列入已知被利用漏洞(KEV)清单,确认存在在野利用。近日多地网络安全机构发布预警,提醒机关、学校和企业尽快完成版本更新。
影响范围:主要针对自建 GitLab 实例
受影响的是自托管(self-managed)的 GitLab CE/EE,具体版本范围为:18.7 至 19.1.7 之前、19.2.0 至 19.2.5、19.3.0 至 19.3.1;使用 18.11 或 19.0 分支的实例,官方额外提供了 18.11.12 和 19.0.9 的回移补丁。GitLab.com(SaaS)和 GitLab Dedicated 由官方统一维护,已修复,无需用户操作。
独立测绘数据显示,全球有数万个面向互联网开放的自建 GitLab 实例可能受影响。漏洞披露后约一天内(部分报告称最快六小时)就观测到大规模扫描行为,自动化利用成本极低。
为什么站长和运维要特别关注
GitLab 不只是一个"代码仓库"——企业通常把源代码、CI/CD 流水线密钥、部署密钥、容器镜像库凭据、云账号访问令牌全部集中在上面。一次成功的任意文件读取,攻击者瞄准的往往不是代码本身,而是:
- gitlab-secrets.json:GitLab 用于加密数据库中 CI/CD 变量的密钥文件,拿到它意味着流水线里存储的云凭据、镜像仓库令牌都可能被解密;
- 数据库配置文件(database.yml)与 SSH 主机私钥;
- Runner 注册令牌:攻击者可借此挂接恶意 Runner,把恶意代码注入构建流水线——这是最直接的供应链攻击路径。
换言之,GitLab 失守往往不只是"一个应用被入侵",而是通向生产环境、云账号乃至软件交付链的整体暴露。另一个值得注意的细节是:该漏洞没有可用性影响,被利用的服务器不会崩溃、不会报错,一切照常运行,这也导致发现时间普遍偏晚。
利用前提与风险点
安全研究显示,漏洞路由通常要求目标实例上存在至少一个可匿名访问的公开项目才能未授权触发;利用请求全部为普通 HTTP POST 请求,可完全自动化批量扫描。即使部分文件内容无法直接回显,攻击者也可通过响应差异探测服务器的文件布局与运行环境,为后续攻击铺路。同批修复的 CVE-2026-87719(CVSS 9.9)涉及 EE 版 Duo Chat 的 GraphQL 订阅越权,可与前者组合进一步放大危害。
排查思路
- 确认版本:在服务器上执行版本检查(Omnibus 部署可查看管理界面底部版本号或运行环境信息命令),确认是否落在受影响区间;
- 检查暴露面:盘点所有自建 GitLab 实例,确认哪些面向互联网开放,审计是否存在匿名可读的公开项目;
- 审查访问日志:重点检查针对
/api/v4/projects/{id}/repository/commits/的可疑 POST 请求,以及携带file.path参数、含路径遍历序列(../或 URL 编码变体)的 URI; - 检查资产完整性:如发现利用痕迹,重点确认 gitlab-secrets.json、数据库配置、Runner 注册令牌是否可能已泄露。
修复与缓解建议
- 立即升级:将实例升级至 19.3.2、19.2.6、19.1.8(或 18.11.12 / 19.0.9 回移补丁)及更高版本。注意单节点实例升级涉及数据库迁移停机,多节点可参考官方零停机升级流程;务必先备份数据与配置、在维护窗口内操作;
- 收敛暴露面:将 GitLab 管理入口与 API 限制在可信网络内访问,避免直接对公网开放;
- 限制匿名读取:收紧公开项目与匿名访问权限,降低未授权触发条件;
- 轮换凭证:若实例在未打补丁期间曾对公网开放,应视为凭据已泄露,轮换 CI/CD 变量、部署密钥、Runner 注册令牌等敏感凭据;
- 临时缓解:如短期内无法升级,可通过 WAF 或反向代理规则过滤针对 Commits API 与 Repository Files API 的可疑请求——但需注意签名类规则可能被编码变体绕过,升级仍是唯一根治手段。具体操作请以 GitLab 官方安全公告为准。
后续观察
GitLab 官方已发布配套威胁检测规则,并按惯例在补丁发布 90 天后公开漏洞技术细节——届时利用门槛会进一步降低。尚未完成升级的团队应把此事当作应急响应级别的任务处理,而不仅仅是例行补丁管理。对于在用其他版本管理平台(如 Gitea、Gogs 等)的团队,也建议借机做一次版本与暴露面盘点。
参考资料:GitLab 官方安全公告与补丁发布说明、CISA KEV 清单、Censys / Resecurity / Greenbone 等安全厂商分析。修复与缓解措施请以官方公告为准。











暂无评论内容