
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.
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.
/api/v1/delta der Webanwendung ein Angriff durch Kontamination der Delta-Attribute erfolgen./api/v1/delta -> Speichern des Zustands durch Kontaminationskonfiguration.
[Abbildung 1] POC - Endpunkt-Angriff
[Abbildung 2] POC - Schwachstelleninjektion / Gesamter Inhalt der Kontaminationskonfiguration
[Abbildung 3] lightning/api/core/api.py / Teil der schwachen Header-Überprüfungslogik
[Abbildung 4] lightning/api/core/app.py / Konfigurationsabschnitt
[Abbildung 5] lightning/api/core/app.py / Abschnitt zum Speichern der Konfiguration