Eine schwerwiegende Sicherheitslücke im PyTorch Distributed RPC Framework ermöglicht es Angreifern, beliebigen Code auf Master-Nodes auszuführen. Diese Schwachstelle CVE-2024-5480 betrifft insbesondere Szenarien des verteilten Trainings, bei denen das RPC-Framework verwendet wird.
Das torch.distributed.rpc Framework von PyTorch wird häufig in Anwendungen wie Reinforcement Learning, Modellparallelismus und Parameter-Server-Trainingsframeworks eingesetzt. Das Framework ermöglicht Remote Procedure Calls (RPC) zwischen verschiedenen Knoten in einem verteilten System.
Forscher von huntr.com haben herausgefunden, dass das Framework während der RPC-Aufrufe nicht überprüft, ob die aufgerufene Funktion tatsächlich die erwartete ist. Dies erlaubt es Angreifern, über das Netzwerk RPCs zu initiieren, die Python-Bibliotheksfunktionen wie eval
ausführen. Dadurch können Angreifer beliebige Python-Befehle auf dem Master-Knoten ausführen.
Ein Proof-of-Concept zeigt, wie ein Worker-Knoten über rpc.rpc_sync
eine unsichere Funktion an den Master-Knoten sendet, die dann deserialisiert und ausgeführt wird. Der folgende Code auf einem Worker demonstriert, wie durch die Schwachstelle das Kommando os.system("id;ifconfig")
auf dem Master ausgeführt wird:
import torch.distributed.rpc as rpc
rpc.init_rpc("worker", rank=1, world_size=2)
ret = rpc.rpc_sync("master", eval, args=('__import__("os").system("id;ifconfig")',))
print(ret)
rpc.shutdown()
Durch die Ausnutzung dieser Schwachstelle können Angreifer Kontrolle über den Master-Knoten erlangen, was zu erheblichen Sicherheitsrisiken führt, darunter die unautorisierte Ausführung von Code, der Diebstahl sensibler Daten und die Beeinträchtigung der Integrität und Verfügbarkeit des Systems.
Professionelle Hilfe erwünscht?
Sentiguard ist spezialisiert auf Notfallhilfe nach Cyberattacken, IT Sicherheitsbeauftragte und IT Sicherheitskonzepte nach BSI Standard. Haben Sie Fragen und wünschen Sie unverbindliche Beratung, dann melden Sie sich gerne bei uns: