
CVE-2026-85706 用のGoエクスプロイト。GitLab CE/EE Workhorse における URL エンコーディングバイパスを利用した未認証の任意ファイル読み取りで、並行リクエストと TLS スキップに対応。
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
これは、TLS 検証をスキップして、ターゲットの GitLab インスタンスから /etc/shadow ファイルの読み取りを試みます。