Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-20896 — Öffentlicher PoC und Detektor für CVE-2026-20896 ("Gitea Docker: Ein Header, jeder Benutzer") | Kitploit
Tools/GitHubGitHub/rz1027/cve-2026-20896
SchwachstellenanalyseExploitationWebsicherheitPenetrationstestsAuthentifizierungFehlkonfigurationLernen & BildungRed Teaming
GitHubrz1027/cve-2026-20896

CVE-2026-20896

Öffentlicher PoC und Detektor für CVE-2026-20896 ("Gitea Docker: Ein Header, jeder Benutzer")

Repository anzeigen
612vor 2 MonatenNoch nicht geprüft
Webseite

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-20896

Das offizielle Docker-Image von Gitea (bis einschließlich 1.26.2) liefert in seiner Standardkonfiguration REVERSE_PROXY_TRUSTED_PROXIES = * aus. Wenn Sie die Reverse-Proxy-Anmeldung aktivieren, bedeutet dieser Platzhalter, dass jede Quell-IP als vertrauenswürdiger Proxy behandelt wird – jeder, der den Port erreichen kann, kann einen X-WEBAUTH-USER-Header senden und sich als beliebiger Benutzer anmelden. Kein Passwort, kein Token.

Ich habe dies an Gitea gemeldet, und es wurde in 1.26.3 / 1.26.4 behoben. Dieses Repository enthält meine eigene Dokumentation, einen funktionierenden PoC und einen Prüfer. Es handelt sich um einen gepatchten, öffentlichen Fehler.

  • CVE-Eintrag: https://www.cve.org/CVERecord?id=CVE-2026-20896 (Melder: rz1027)
  • Gitea-Advisory: https://github.com/go-gitea/gitea/security/advisories/GHSA-f75j-4cw6-rmx4
  • Fix / Release-Notizen: https://blog.gitea.com/release-of-1.26.3-and-1.26.4/

Der Fehler

Gitea unterstützt Reverse-Proxy-Authentifizierung: Sie platzieren es hinter einem Proxy, der X-WEBAUTH-USER setzt, und Gitea vertraut diesem Header für den Benutzernamen. Das ist in Ordnung, solange nur Ihr Proxy diesen Header setzen kann. Die Einstellung, die dies erzwingen soll, ist , eine IP-Whitelist. Gitea akzeptiert den Header nur, wenn die Quell-IP der Anfrage innerhalb dieser Liste liegt.

REVERSE_PROXY_TRUSTED_PROXIES

Der dokumentierte, sichere Standardwert (der in app.example.ini) ist 127.0.0.0/8,::1/128: nur Loopback, sodass standardmäßig nur der lokale Proxy vertrauenswürdig ist. Das offizielle Docker-Image verwendet dies nicht. Seine app.ini-Vorlage hardcodiert * (docker/root/etc/templates/app.ini:55 und docker/rootless/etc/templates/app.ini:52 für das rootless-Image). * passt auf jede Quell-IP, sodass die Whitelist-Prüfung wirkungslos ist. Aktivieren Sie die Reverse-Proxy-Anmeldung, und nun kann jeder, der den Port erreicht, den Header senden – nicht nur Ihr Proxy. Bei aktivierter Auto-Registrierung wird das Konto sofort erstellt. Senden Sie den Benutzernamen eines Administrators, und Sie sind der Administrator.

Der Code ist also nicht falsch, sondern die ausgelieferte Standardkonfiguration, und dies betrifft nur die Docker-Images. Eine binäre oder selbst erstellte Installation, die app.example.ini folgt, behält den Loopback-Standard bei und ist nicht betroffen.

Ausprobieren

Benötigt Docker und Python 3 (nur Standardbibliothek, nichts zu installieren).

root@kitploit:~
docker compose up -d          # startet vulnerable gitea/gitea:1.26.2
# ~30-60s warten, bis die Ersteinrichtung abgeschlossen ist, dann:
python3 poc.py                # zufälliges neues Opfer, zeigt Auto-Registrierung
python3 poc.py http://localhost:3000 admin   # gibt sich als gewählten Benutzernamen aus
docker compose down -v        # aufräumen

So sieht es gegen das mitgelieferte Image aus:

root@kitploit:~
1) /user/settings ohne Header        -> HTTP 303   (Weiterleitung zum Login = nicht authentifiziert)
2) /user/settings mit X-WEBAUTH-USER -> HTTP 200
   eingeloggt als 'pocadmin' - kein Passwort, kein Token, beliebige Quell-IP
3) /pocadmin-Profilseite             -> HTTP 200   (Konto wird sofort erstellt)

Der Bypass funktioniert in der Web-Session, nicht in der Token-API unter /api/v1/..., die den Header ignoriert.

Eigene Instanz prüfen

detect.py sendet eine harmlose Testanfrage und vergleicht sie mit einer normalen Anfrage. Es verändert nichts.

root@kitploit:~
python3 detect.py https://gitea.example.com

Es gibt VULNERABLE, looks-safe oder inconclusive aus. Führen Sie es nur gegen etwas aus, das Ihnen gehört oder das Sie testen dürfen.

Behebung

Aktualisieren Sie auf 1.26.3 / 1.26.4 oder neuer. Die Reverse-Proxy-Authentifizierung ist jetzt opt-in, und das Image liefert den Platzhalter nicht mehr aus. Wenn Sie nicht aktualisieren können, setzen Sie REVERSE_PROXY_TRUSTED_PROXIES auf die tatsächliche IP oder CIDR Ihres Proxys (niemals *), oder deaktivieren Sie ENABLE_REVERSE_PROXY_AUTHENTICATION, wenn Sie diese Funktion nicht nutzen.

Zeitplan

  • 2026-05-26: Privat an Gitea gemeldet.
  • 2026-07-03: CVE-2026-20896 veröffentlicht, rz1027 zugeschrieben.
  • Behoben in Gitea 1.26.3 / 1.26.4.

Danksagung

Ich habe diesen Fehler gefunden und am 2026-05-26 an Gitea gemeldet. Ich bin der im Gitea-Advisory (GHSA-f75j-4cw6-rmx4) genannte Melder.

Einige Berichte haben fälschlicherweise das Exploitarium-Repository dafür verantwortlich gemacht, nicht mich. Das ist falsch und hat nichts mit dem zu tun, was dieses Repository veröffentlicht hat. Ich habe inzwischen mehrere dieser Blogs korrigieren lassen; einige sind immer noch falsch.

MIT-lizenziert. Siehe LICENSE.

Tool herunterladen