Mehrere kritische Sicherheitslücken wurden im weit verbreiteten Deep-Learning-Framework PyTorch Lightning gefunden. Die Schwachstellen betreffen die Deserialisierung von Daten und betreffen alle Versionen des Frameworks bis einschließlich Version 2.4.0. Angreifer könnten diese Lücken ausnutzen, um durch das Laden manipulierter Modelldateien beliebigen Code auszuführen.
Die Sicherheitslücken, die unter der Referenz VU#252619 geführt werden, wurden von Kasimir Schulz von HiddenLayer entdeckt. Die Veröffentlichung der Informationen erfolgte in Abstimmung mit dem CERT Coordination Center (CERT/CC) der Carnegie Mellon University.
PyTorch Lightning, eine High-Level-Schnittstelle für PyTorch, vereinfacht komplexe Aufgaben wie verteiltes Training und Hardwareskalierung. Die weitreichende Verbreitung des Frameworks – es wird in tausenden von Forschungsarbeiten zitiert, in Machine-Learning-Pipelines von Unternehmen integriert und wurde bis März 2025 über 200 Millionen Mal heruntergeladen – verstärkt die potenziellen Auswirkungen dieser Sicherheitslücken.
Deserialisierungsfunktionen wie torch.load()
und Pythons pickle
-Modul verfügen über keine inhärenten Sicherheitsmechanismen. Dies ermöglicht es Angreifern, bösartigen Code in Modelldateien (z. B. im .ckpt- oder .pt-Format) einzubetten. Wenn diese Dateien von automatisierten Workflows – wie Trainingspipelines oder Inferenzdiensten – geladen werden, kann dies die Ausführung von nicht autorisiertem Code auslösen und zu Systemkompromittierung, Datendiebstahl oder lateralen Bewegungen im Netzwerk führen.
Das CERT/CC identifizierte unsichere Deserialisierungsmechanismen in mehreren Subsystemen:
- Verteiltes Checkpointing: Die Funktion_load_distributed_checkpoint
verarbeitet ungeprüfte serialisierte Daten über Clusterknoten hinweg.
- Cloud_IO-Modul: Ruft Modelle aus lokalen Dateien, Remote-URLs oder In-Memory-Streams ohne Inhaltsvalidierung ab.
- Lazy-Loading-Routinen: Die Methode _lazy_load
verzögert die Ausführung, ohne den verzögerten Code zu überprüfen.
- DeepSpeed-Integration: Bietet zusätzliche Angriffsflächen durch die Deserialisierung von Optimierer- und Modellzuständen.
- PickleSerializer: Kapselt direkt Pythons pickle
-Modul ein und bietet kein Sandboxing oder Validierung.
Bis zur Veröffentlichung eines Patches empfiehlt das CERT/CC Organisationen folgende Maßnahmen:
- Durchsetzung strenger Vertrauensgrenzen: Vermeiden Sie das Laden von Modellen aus nicht vertrauenswürdigen oder nicht authentifizierten Quellen. - Eingeschränkte Deserialisierung: Verwenden Sietorch.load(weights_only=True)
, um das Laden auf Tensordaten zu beschränken.
- Isolierung nicht vertrauenswürdiger Workloads: Verarbeiten Sie externe Dateien in Sandbox-Umgebungen, z. B. in Containern mit eingeschränkten Rechten.
- Überprüfung von Dateien vor dem Laden: Verwenden Sie Tools wie pickletools
, um serialisierte Inhalte auf verdächtige Muster zu analysieren.
- Überprüfung von Automatisierungspipelines: Stellen Sie sicher, dass CI/CD-Systeme und Modellregister keine vom Benutzer bereitgestellten Daten ohne Sicherheitsvorkehrungen deserialisieren.
Die in PyTorch Lightning gefundenen Schwachstellen unterstreichen die seit langem bestehenden Bedenken hinsichtlich der Sicherheit von ML-Toolchains. Deserialisierungsrisiken in PyTorch und verwandten Frameworks sind seit Jahren dokumentiert, doch viele Tools priorisieren weiterhin Komfort gegenüber Sicherheit.
Diese Sicherheitslücken sind eine deutliche Erinnerung daran, dass ML-Workflows zunehmend attraktive Ziele für Angreifer sind. Unternehmen müssen Modelldateien mit der gleichen Vorsicht behandeln wie ausführbaren Code, insbesondere in gemeinsam genutzten oder Produktionsumgebungen.