CVE-2025-10155: Sicherheitsumgehung von picklescan durch fehlerhafte Dateiendungsklassifizierung, die zur Ausführung von beliebigem Code führt

Die Software picklescan ist ein beliebtes Open-Source-Tool, das entwickelt wurde, um Sicherheitslücken in Machine-Learning-Modellen (ML) zu erkennen, die im Pickle-Format gespeichert sind. Es wird häufig in MLOps-Pipelines und von Data-Science-Teams eingesetzt, um Modelle aus nicht vertrauenswürdigen Quellen zu überprüfen und Angriffe zu verhindern, die die Deserialisierung schädlicher Daten ausnutzen. Geschäftskritische Anwendungen, einschließlich produktiver Dienste und KI-basierter Analysen, verlassen sich auf diesen Scan, um sich vor Supply-Chain-Angriffen zu schützen, die auf ML-Artefakte abzielen.

Die Auswirkungen dieser Schwachstelle sind hoch, da sie eine vollständige Umgehung der Sicherheitskontrollen des Scanners ermöglicht, was zu einer möglichen nicht authentifizierten Remote-Code-Ausführung führen kann. Ein Angreifer kann eine schädliche Pickle-Datei als sicheres PyTorch-Modell tarnen und so den Scanner täuschen. Wenn eine nachgelagerte Anwendung das „verifizierte“ Modell lädt, wird der Code des Angreifers auf dem Host-System ausgeführt. Diese Schwachstelle betrifft jede Organisation, die picklescan in ihren ML-Pipelines verwendet, um Modelle aus externen oder nicht vertrauenswürdigen Repositories zu analysieren. Obwohl derzeit keine bestätigten Berichte über eine aktive Ausnutzung vorliegen, ist ein öffentlicher Exploit verfügbar und die Komplexität des Angriffs ist gering, was auf eine hohe Wahrscheinlichkeit zukünftiger Ausnutzung hindeutet.

Produktpicklescan
Datum05.12.2025 00:36:43

Technische Zusammenfassung

Bei der Schwachstelle handelt es sich um einen Fehler vom Typ CWE-20: Improper Input Validation in der Logik zur Identifizierung des Dateityps von picklescan. Der Scanner priorisiert fälschlicherweise die Dateiendung gegenüber der Inhaltsanalyse, um den Typ zu bestimmen, was es einem Angreifer ermöglicht, die Sicherheitskontrollen zu umgehen.

Technische Analyse:

  1. Dateitarnung: Ein Angreifer erstellt eine standardmäßige, aber schädliche Pickle-Datei, die gefährliche Opcodes enthält, die dazu bestimmt sind, beliebige Befehle auszuführen (z. B. unter Verwendung von __reduce__ mit os.system).
  2. Umgehung durch Dateiendung: Der Angreifer speichert das schädliche Pickle-Payload mit einer typischen PyTorch-Endung, wie .pt oder .pth.
  3. Fehlerhafte Identifizierung: Wenn picklescan die Datei analysiert, prüft seine Logik zuerst die Dateiendung. Die Datei wird fälschlicherweise als „sicheres“ PyTorch-Modell identifiziert – ein Dateityp, der von der Standard-Opcode-Analyse für Pickle ausgenommen ist.
  4. Umgehung des Scans: Da die Datei falsch klassifiziert ist, überspringt picklescan die notwendige Sicherheitsüberprüfung, die andernfalls die in der Datei vorhandenen schädlichen Opcodes erkannt hätte. Die Datei wird daraufhin als sicher gemeldet.
  5. Code-Ausführung: Eine nachgelagerte Anwendung oder ein ML-Ingenieur vertraut dem Scan-Ergebnis und lädt die schädliche Datei unter Verwendung einer Standard-Deserialisierungsbibliothek wie pickle.load(). Diese Aktion löst die Ausführung des eingebetteten Payloads aus, was zur willkürlichen Code-Ausführung mit den Berechtigungen des Benutzers führt, der die Anwendung ausführt.

Betroffene Versionen:

  • Anfällig: picklescan-Versionen bis einschließlich 0.0.30.
  • Behoben: Ein Fix wurde in nachfolgenden Versionen veröffentlicht. Benutzer müssen ein Update auf die neueste verfügbare Version durchführen.

Empfehlungen

  • Sofortiges Patchen: Aktualisieren Sie picklescan auf die neueste verfügbare Version, die den Fix für diese Schwachstelle enthält. Stellen Sie sicher, dass alle Instanzen innerhalb der MLOps- und Sicherheitspipelines aktualisiert sind.
  • Mitigationsmaßnahmen:
    • Falls ein sofortiges Patchen nicht möglich ist, behandeln Sie alle Scan-Ergebnisse von anfälligen picklescan-Versionen mit äußerster Vorsicht, insbesondere bei Dateien mit PyTorch-Endungen aus nicht vertrauenswürdigen Quellen.
    • Implementieren Sie Isolierung (Sandboxing) für alle Inferenz- und Modellanalyseumgebungen. Nutzen Sie Technologien wie Container (z. B. Docker) oder Micro-VMs, um den Modell-Ladevorgang vom Host-System und dem weiteren Netzwerk zu isolieren.

  • Suche und Überwachung:

    • Führen Sie ein Audit der historischen Scan-Logs durch, um alle Dateien mit den Endungen .pt oder .pth zu identifizieren, die von anfälligen picklescan-Versionen verarbeitet wurden.
    • Überprüfen Sie System- und Anwendungs-Logs auf Servern, die für das Laden von Modellen zuständig sind, auf verdächtige Aktivitäten, wie unerwartete Netzwerkverbindungen oder Kindprozesse, die von der für die Deserialisierung verantwortlichen Anwendung gestartet wurden.
    • Überwachen Sie Schreib- oder Änderungsereignisse an Dateien mit Endungen wie .pt und .pth in ungewöhnlichen Verzeichnissen.

  • Reaktion auf Vorfälle:

    • Wenn eine Kompromittierung vermutet wird, isolieren Sie den betroffenen Host sofort vom Netzwerk, um seitliche Bewegungen (Lateral Movement) zu verhindern.
    • Bewahren Sie die schädliche Modelldatei und die System-Logs für eine forensische Analyse auf.
    • Gehen Sie davon aus, dass alle Daten oder Anmeldeinformationen, auf die der kompromittierte Prozess Zugriff hatte, exfiltriert wurden.

  • Defense-in-Depth:

    • Wenden Sie das Prinzip der geringsten Rechte (Least Privilege) an. Führen Sie Anwendungen zum Laden von Modellen mit den minimal erforderlichen Berechtigungen aus.
    • Implementieren Sie Netzwerksegmentierung, um ausgehende Verbindungen von Servern, die ML-Modelle verarbeiten, zu begrenzen und so die Möglichkeit eines Angreifers zur Datenexfiltration oder zum Aufbau eines Command-and-Control-Kanals zu verringern.

[Callforaction-THREAT-Footer]

Leave a Reply

Your email address will not be published. Required fields are marked *