Vor kurzem hat das Research-Team von JFrog 22 Software-Schwachstellen in Machine Learning-Projekten aufgespürt, analysiert und ausgewertet. Bereits Anfang November hatte es erste Ergebnisse hierzu in einem ersten Blogbeitrag – damals mit einem Fokus auf serverseitigen ML-Schwachstellen – der Öffentlichkeit vorgestellt.
Nun, Anfang Dezember, hat das Team einen zweiten Blogbeitrag Online gestellt. Sein Schwerpunkt: Client-seitige ML-Schwachstellen sowie Schwachstellen in Libraries mit denen sich ML-Formate, die keine Code-Ausführung beim Laden unterstützen, handhaben lassen.
Im ersteren Fall handelt es sich um Schwachstellen in ML-Clients, zum Beispiel in Tools, die von Datenwissenschaftlern oder ML-CI/CD-Pipelines (MLOps) verwendet werden. Die Schwachstellen ermöglichen es Angreifern, diese ML-Clients zu kapern. Meist hat ein ML-Client Zugang zu wichtigen ML-Diensten, wie ML-Modellregistern oder MLOps-Pipelines. Schon eine einzige Client-Infektion kann dann, in Verbindung mit Post-Exploitation-Techniken, Angreifern eine erhebliche Bewegungsfreiheit innerhalb der Netzwerke ihrer Opfer verschaffen.
Im zweiten Fall handelt es sich um Schwachstellen der ML-Bibliothek, die beim Laden eines scheinbar sicheren ML-Modells, das keine „Code-Ausführung beim Laden“ unterstützt, ausgelöst werden können.
Auch hier können Angreifer, in Verbindung mit Post-Exploitation-Techniken, ihre Bewegungsfreiheit ausbauen – um dann zum Beispiel, falls es ihnen gelingt, auf einen ML-Server zuzugreifen, dort abgelegte ML-Modelle mit Hintertüren auszustatten.
Bei den im Beitrag vorgestellten Schwachstellen handelt es sich um:
- MLflow Recipe XSS to code execution (CVE-2024-27132) – Das JFrog Research Team entdeckte eine Schwachstelle, die die Ausführung von beliebigem clientseitigem JS-Code (XSS) auf einem Client ermöglicht, der ein bösartige Datei lädt. In Fällen, in denen es sich um den Client JupyterLab handelt, kann der XSS zur vollständigen Ausführung von beliebigem Code ausgeweitet werden.
- H2O Code Execution via Malicious Model Deserialization (CVE-2024-6960) – Das JFrog Research Team entdeckte in der H2O-Plattform eine Sicherheitslücke, die die Ausführung von beliebigem Code auf der H2O-Plattform ermöglicht, wenn ein nicht vertrauenswürdiges ML-Modell importiert wird.
und
- Path Traversal Arbitrary File Overwrite (PyTorch „weights_only“) – Das JFrog Research Team entdeckte eine Path Traversal-Schwachstelle in TorchScript, die zum Schreiben einer beliebigen Datei führen kann – selbst wenn das bösartige TorchScript-Artefakt mit dem scheinbar sicheren Argument weights_only=True geladen wird.
- MLeap ZipSlip Arbitrary File Overwrite (CVE-2023-5245) – Das JFrog Research Team stellte fest, dass die Verwendung von MLeap, aufgrund einer Directory Traversal-Schwachstelle, zum Überschreiben beliebiger Dateien und möglicherweise auch zur Codeausführung führen kann.
Im neuen Blog-Beitrag werden diese clientseitigen Modellschwachstellen umfassend analysiert, ihre technischen Details sowie die Art und Weise ihrer Auslösung eingehend erläutert. Um die ML-Schwachstellen in den Griff zu bekommen, raten die Experten, sämtliche ML-Nutzer im Unternehmen anzuweisen, keine ‚nicht-vertrauenswürdigen‘ ML-Modelle zu laden – auch nicht von Safetensors oder in anderen scheinbar sicheren Formaten.
(pd/JFrog)