Un ensemble de vulnérabilités critiques baptisées « ShellTorch » dans l’outil open source de création de modèles d’IA TorchServe affectent des dizaines de milliers de serveurs exposés à Internet, dont certains appartiennent à de grandes organisations.
TorchServe, maintenu par Meta et Amazon, est un populaire outil pour servir et mettre à l’échelle des modèles PyTorch (cadre d’apprentissage automatique) en production.
La bibliothèque est principalement utilisée par ceux qui participent à la formation et au développement de modèles d’IA, des chercheurs universitaires aux grandes entreprises comme Amazon, OpenAI, Tesla, Azure, Google et Intel.
Les failles de TorchServe découvertes par l’équipe de recherche d’Oligo Security peuvent conduire à un accès non autorisé au serveur et à l’exécution de code à distance (RCE) sur des instances vulnérables.
La vulnérabilité ShellTorch
Les trois vulnérabilités sont collectivement nommées ShellTorch et impactent les versions 0.3.0 à 0.8.1 de TorchServe.
Le premier défaut est une mauvaise configuration de l’API de l’interface de gestion non authentifiée qui fait que le panneau Web est lié par défaut à l’adresse IP 0.0.0.0 au lieu de localhost, l’exposant aux requêtes externes.
Comme l’interface manque d’authentification, elle permet un accès illimité à tout utilisateur, qui peut être utilisé pour télécharger des modèles malveillants à partir d’une adresse externe.
Le deuxième problème, identifié comme CVE-2023-43654, est une falsification de requête côté serveur à distance (SSRF) conduisant à l’exécution de code à distance (RCE).
Bien que l’API de TorchServe ait une logique pour une liste de domaines autorisés pour récupérer les fichiers de configuration des modèles à partir d’une URL distante, il a été constaté que tous les domaines étaient acceptés par défaut, conduisant à une faille SSRF (Server-Side Request Forgery).
Cela permet aux attaquants de télécharger des modèles malveillants qui déclenchent l’exécution de code arbitraire lorsqu’ils sont lancés sur le serveur cible.
La troisième vulnérabilité identifiée comme CVE-2022-1471 est un problème de désérialisation Java conduisant à l’exécution de code à distance.
En raison d’une désérialisation non sécurisée dans la bibliothèque SnakeYAML, les attaquants peuvent télécharger un modèle avec un fichier YAML malveillant pour déclencher l’exécution de code à distance.
Si un attaquant enchaîne ces trois failles, il pourrait facilement compromettre un système exécutant des versions vulnérables de TorchServe.
Une démonstration de la chaîne d’attaque ShellTorch peut être vue ci-dessous.
Correctifs ShellTorch
Oligo affirme que ses analystes ont analysé le Web à la recherche de déploiements vulnérables et ont trouvé des dizaines de milliers d’adresses IP actuellement exposées aux attaques ShellTorch, certaines appartenant à de grandes organisations d’envergure mondiale.
« Une fois qu’un attaquant peut pirater le réseau d’une organisation en exécutant du code sur son serveur PyTorch, il peut l’utiliser comme point d’appui initial pour se déplacer latéralement vers l’infrastructure afin de lancer des attaques encore plus percutantes, en particulier dans les cas où les restrictions appropriées ou les contrôles standard ne sont pas disponibles. présent », explique Oligo.
Pour corriger ces vulnérabilités, les utilisateurs doivent passer à TorchServe 0.8.2. Cependant, cette mise à jour ne corrige pas CVE-2023-43654 mais affiche un avertissement concernant le SSRF à l’utilisateur.
Ensuite, configurez correctement la console de gestion en définissant le adresse_gestion à http://127.0.0.1:8081 dans le fichier config.properties. Cela entraînera la liaison de TorchServe à l’hôte local au lieu de chaque adresse IP configurée sur le serveur.
Enfin, assurez-vous que votre serveur récupère les modèles uniquement à partir de domaines approuvés en mettant à jour le URL_autorisées dans le fichier config.properties en conséquence.
Amazon a également a publié un bulletin de sécurité à propos de CVE-2023-43654, fournissant des conseils d’atténuation aux clients utilisant des conteneurs d’apprentissage profond (DLC) dans EC2, EKS ou ECS.
Enfin, Oligo a publié un outil de vérification gratuit que les administrateurs peuvent utiliser pour vérifier si leurs instances sont vulnérables aux attaques ShellTorch.
Mise à jour 10/3 – Un porte-parole de Meta a envoyé à BleepingComputer le commentaire suivant concernant les failles découvertes par Oligo :
« Les problèmes de TorchServe – un outil facultatif pour PyTorch – ont été corrigés en août, rendant ainsi la chaîne d’exploits décrite dans ce billet de blog sans objet.
Nous encourageons les développeurs à utiliser la dernière version de TorchServe. » – un porte-parole de Meta