Schwachstelle in PyTorch erlaubt Command Injection via RPC auf dem Master Node
Eine Schwachstelle in dem Machine-Learning-Framework ermöglicht beim verteilten Training das Ausführen beliebigem Code auf dem Master Node.
Das CERT-Bund des BSI warnt vor einer Schwachstelle in PyTorch, die beim verteilten Training von Modellen auftritt. Das von Meta initiierte, quelloffene ML-Framework fĂĽhrt offenbar den von Worker Nodes gesendeten Python-Code ungeprĂĽft auf dem Master Node aus.
Der Warn- und Informationsdienst von CERT-Bund führt die Schwachstelle als WID-SEC-2024-1323 mit dem höchsten CVSS Score von 10, das Risiko ist demnach kritisch. In der NIST Vulnerability Database ist die Schwachstelle als CVE-2024-5480 gelistet.
Welche Versionen genau betroffen sind, lässt sich den Meldungen nicht exakt entnehmen. Beim NIST ist von Versionen speziell vor 2.2.2 die Rede, beim BSI von Versionen kleiner 2.2.3. In den offiziellen Release Notes findet sich weder in Version 2.2.2 noch in Version 2.3 ein expliziter Hinweis auf einen zugehörigen Bugfix.
Mangelnde PrĂĽfung fĂĽr Remote Procedure Calls
Die Schwachstelle findet sich in dem Distritbuted RPC Framework torch.distributed.rpc
von PyTorch. Es ermöglicht das Ausführen von Remote Procedure Calls (RPC) unter anderem für das verteilte Training von Modellen.
Die Worker Nodes können dabei spezielle Funktionsaufrufe als User-defined Function (UDF) serialisieren und an den Master Node schicken, der sie deserialisiert und ausführt. Da das Framework die Funktionen vor der Ausführung offenbar nicht prüft, ist es für Command Injection (CWE-77) anfällig.
Wenn ein Angreifer Zugriff zu einem Worker Node hat, kann er eine beliebige Python-Funktion wie eval
an den Master Node ĂĽbergeben, die diese aufruft. eval
überträgt wiederum die als String-Parameter übergebene Expression in einen Python-Befehl und führt ihn aus.
Auf der Bug-Bounty-Plattform huntr findet sich ein Proof-of-Concept-Exploit. Auch wenn der Code nur die IP des Master Node abfragt, weist der Beitrag darauf hin, dass sich auf die Weise sensible Daten vom Master abgreifen lassen.
(rme)