
Exploit en Go para CVE-2026-85706, una lectura arbitraria de archivos sin autenticación en GitLab CE/EE Workhorse mediante un bypass de codificación de URL, con solicitudes concurrentes y omisión de TLS.
Vulnerabilidad de lectura arbitraria de archivos sin autenticación en GitLab CE/EE (CVE-2026-85706).
Versiones afectadas:
Versiones parcheadas:
La vulnerabilidad existe en el componente Workhorse de GitLab. La expresión regular de workhorse ve una ruta codificada, mientras que Puma la decodifica. Se llama a File.open(file.path) de Rails antes de la autenticación, y el análisis de urlencoded interpola una codificación % inválida en el cuerpo del 400, provocando la filtración del contenido del archivo.
# 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
| Argumento | Descripción | Predeterminado |
|---|---|---|
-u | URL objetivo (p. ej., https://gitlab.example.com) | - |
-f | Archivo a leer (p. ej., /etc/passwd) | - |
-k | Omitir la verificación TLS | false |
-t | Número de hilos concurrentes | 1 |
-v | Salida detallada | false |
./CVE-2026-85706 -u https://gitlab.example.com -f /etc/shadow -k
Esto intentará leer el archivo /etc/shadow desde la instancia GitLab objetivo, omitiendo la verificación TLS.