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-2024-5452 — Detaillierte technische Analyse von CVE-2024-5452, einer Remote-Codeausführungs-Schwachstelle in PyTorch Lightning über DeepDiff-Delta-Eigenschaftsverschmutzung, mit Proof-of-Concept und Leitfaden zur Schadensbegrenzung. | Kitploit
Tools/GitHubGitHub/skrkcb2/cve-2024-5452
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationLernen & BildungKI-Sicherheit
GitHubskrkcb2/cve-2024-5452

CVE-2024-5452

Detaillierte technische Analyse von CVE-2024-5452, einer Remote-Codeausführungs-Schwachstelle in PyTorch Lightning über DeepDiff-Delta-Eigenschaftsverschmutzung, mit Proof-of-Concept und Leitfaden zur Schadensbegrenzung.

Repository anzeigen
3vor 1 JahrNoch 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-5452

01. RCE und pytorch-lightning Überblick

  • 1) RCE und pytorch-lightning Überblick

    RCE (Remote Code Execution) ist eine Schwachstelle, die es einem Angreifer ermöglicht, beliebigen Code aus der Ferne in einem System oder einer Anwendung auszuführen. Sie fällt unter CWE-94: Unzureichende Kontrolle der Codegenerierung ('Code Injection').

    PyTorch Lightning ist eine Bibliothek, die das Training von Deep-Learning-Modellen auf Basis von PyTorch erleichtert. DeepDiff ist eine Bibliothek, die zwei Python-Objekte vergleicht und die Unterschiede analysiert.

    CVE-2024-5452 ist eine Schwachstelle, die in den Webanwendungsfunktionen von Lightning im Zusammenhang mit KI-Modellgewichten auftritt. Dabei werden DeepDiff und Lightning genutzt. Durch eine schwache Header-Validierung in DeepDiff und eine Kontamination der Delta-Attribute kommt es während der Deserialisierung zu einem RCE.

    Wir werden uns den Codeablauf ansehen, durch den ein Angreifer beliebige Objekte injizieren oder einen Remote Code Execution (RCE) ausführen kann, und nach Abhilfemaßnahmen suchen.

02. Analyse der Deserialisierungsschwachstelle in der pytorch-lightning Umgebung

  • 2.1 Angriffsanalyse mittels Delta-Kontamination in DeepDiff

    [Abbildung 6] zeigt den Ablauf der zweiten Anfrage nach der Delta-Konfiguration: run_once() -> maybe_apply_change() -> _collect_deltas_from_ui_and_work_queues() [Abbildung 7] In _collect_deltas_from_ui_and_work_queues() wird die isinstance-Prüfung durch die kontaminierte Konfiguration umgangen (isinstance(delta, _DeltaRequest) == False), sodass der else-Zweig ausgeführt wird. [Abbildung 8] Zur Veranschaulichung: Das Ergebnis von isinstance(delta, _DeltaRequest), delta, _DeltaRequest(Typ) wird ausgegeben. Die erste Anfrage dient der Konfiguration des Angriffs und ist normal, die nächste Anfrage umgeht die Bedingung, da der Typ _DeltaRequest durch str kontaminiert wurde. Sehen wir uns als nächstes das Beispiel von _process_requests an. Wie in [Abbildung 9] zu sehen, wird in _process_requests die Prüfung isinstance(request, _APIRequest) durch die kontaminierte Konfiguration (rechts im Client-POC-Code) umgangen. Die Kontamination bewirkt, dass isinstance(str, OrderSet-Instanz) True zurückgibt. Bisher haben wir zwei Arten von isinstance-Kontamination gesehen; im weiteren Verlauf wird die Konfiguration so erstellt, dass über die Kontamination Attribute aufgerufen werden können. Nach dem Umgehen von isinstance und dem Setzen der Funktionen in [Abbildung 10] wird durch das Setzen von "Interner Zustand fixiert" (_INTERNAL_STATE_VARS: leeres Tupel) in [Abbildung 10] verhindert, dass der interne Zustand in [Abbildung 11] überprüft werden kann.

In pytorch-lightning kann über den DeepDiff-Endpunkt /api/v1/delta der Webanwendung ein Angriff durch Kontamination der Delta-Attribute erfolgen.
Anhand eines Beispiels wollen wir untersuchen, wie eine Kontamination der Dunder-Attribute des Deltas eine Deserialisierungsschwachstelle auslöst.

1) Angriffsablauf mittels Delta-Kontamination in DeepDiff

Die erste Anfrage ist ein Client-Angriffsbeispiel: Kontaminationskonfiguration -> Schwache Header-Validierung in Deepdiff's /api/v1/delta -> Speichern des Zustands durch Kontaminationskonfiguration.

Bildbeschreibung

[Abbildung 1] POC - Endpunkt-Angriff

Bildbeschreibung

[Abbildung 2] POC - Schwachstelleninjektion / Gesamter Inhalt der Kontaminationskonfiguration

Bildbeschreibung

[Abbildung 3] lightning/api/core/api.py / Teil der schwachen Header-Überprüfungslogik

Bildbeschreibung

[Abbildung 4] lightning/api/core/app.py / Konfigurationsabschnitt

Bildbeschreibung

[Abbildung 5] lightning/api/core/app.py / Abschnitt zum Speichern der Konfiguration

Die erste Anfrage umgeht die Header-Überprüfung von /api/v1/delta in [Abbildung 3] mittels [Abbildung 1], injiziert manipulierte Kontaminationskonfiguration (Delta) [Abbildung 2] und speichert die Konfiguration über [Abbildung 4] und [Abbildung 5]. Betrachten wir nun, wie diese manipulierten Delta-Konfigurationen in der zweiten Anfrage wirken.

Bildbeschreibung Bildbeschreibung

[Abbildung 6] lightning/api/core/app.py / Anfänglicher Pfadablauf


Bildbeschreibung

[Abbildung 7] isinstance-Kontaminationsfall

Bildbeschreibung

[Abbildung 8] isinstance-Kontaminationsfall 1

Bildbeschreibung

[Abbildung 9] isinstance-Kontaminationsfall 2

Bildbeschreibung

Bildbeschreibung

Bildbeschreibung

[Abbildung 10] isinstance-Kontaminationsfall 3

Bildbeschreibung

[Abbildung 11_1] /lightning/app/core/flow.py - _INTERNAL_STATE_VARS Prüffunktion

Bildbeschreibung

[Abbildung 11_2] /lightning/app/core/flow.py - __setattr__

Mit [Abbildung 11] ist die gesamte Kontamination und Konfiguration abgeschlossen.

Bildbeschreibung

[Abbildung 12] RCE-Befehl

Bildbeschreibung

Bildbeschreibung

[Abbildung 13] RCE-Antwort

Schließlich wird in [Abbildung 13] exec mit Root-Rechten aufgerufen, um den Befehl aus [Abbildung 12] auszuführen und den Angriff abzuschließen.

2) Kurzbeispiel des Angriffs mittels Delta-Kontamination in DeepDiff (links: Lightning App Server, rechts: Client)

Bildbeschreibung

03. Abhilfemaßnahmen

Bisher haben wir den Ablauf einer RCE-Schwachstelle durch Objekt-Deserialisierung (CVE-2024-5452) in der Lightning-Umgebung betrachtet. Da es sich um einen Angriff handelt, bei dem der Server selbst übernommen wird, sind Abhilfemaßnahmen wichtig. Daher empfehlen wir ein Update auf die neueste Version.

  • Lightning-Update

    Wenn lightning <= 2.2.1 ist, aktualisieren Sie bitte auf eine Version > 2.3.3.
  • Kurze Änderung der Lightning-Bibliothek

    Diese Maßnahme dient nur als kurzer Stop in unvermeidbaren Fällen; bitte beachten Sie dies nur als Referenz. Fügen Sie eine einfache Logik zum Endpunkt /api/v1/delta hinzu (Pfad: /lightning/app/core/api) oder verstärken Sie die Sitzungsprüfung oben. depence
  • Erkennung und Blockierung mittels IPS

    Der Angriff wurde mit Postman getestet, indem Dunder-Attribute im JSON explizit angegeben wurden. image 20250210_143207

04. Fazit

Wir haben uns die Schwachstelle angesehen, die durch Kontamination von Dunder-Attributen über Lightning und DeepDiff einen RCE auslöst. Diese Schwachstelle trat erstens durch eine schwache Header-Validierung und zweitens durch eine schwache Prüfung der Delta-Attribute bei der Objekt-Deserialisierung auf.

05. Referenzen

(poc) https://security.snyk.io/vuln/SNYK-PYTHON-PYTORCHLIGHTNING-7218866
(nist) https://nvd.nist.gov/vuln/detail/CVE-2024-5452

Tool herunterladen