Les cadres AI, y compris le lama de Meta, sont sujets à la désérialisation automatique de Python par cornichon qui pourrait conduire à une exécution de code distante.
Le cadre du modèle grand langage (LLM) de META, LLAMA, souffre d’une surveillance de codage open source typique, permettant potentiellement l’exécution de code arbitraire sur les serveurs conduisant à un vol de ressources, des violations de données et une prise de contrôle du modèle d’IA.
Le défaut, suivi sous le nom de CVE-2024-50050, est un bogue de désérialisation critique appartenant à une classe de vulnérabilités résultant de l’utilisation inappropriée de la bibliothèque open source (PYZMQ) dans les cadres AI.
« L’équipe de recherche Oligo a découvert une vulnérabilité critique dans Meta-Lama, un cadre open source de Meta pour la création et le déploiement d’applications Gen IA », a déclaré les chercheurs en sécurité d’Oligo dans un article de blog. «La vulnérabilité, CVE-2024-50050, permet aux attaquants d’exécuter du code arbitraire sur le serveur d’inférence de lallame de LLAMA à partir du réseau.»
Après le rapport d’Oligo sur la faille, l’équipe de sécurité de Meta a rapidement corrigé la pile Llama, en changeant le format de sérialisation pour la communication de socket de Pickle à JSON.
Une faille typique de l’IA-Framework
Selon les recherches d’Oligo, un certain nombre de cadres d’IA open source exploitent une bibliothèque de messagerie open source (PYZMQ) de manière «dangereuse», permettant l’exécution du code distant.
Le problème provient de la pile lama à l’aide de cornichons, un module Python pour la sérialisation et la désérialisation des objets Python, dans son implémentation «API d’inférence», une fonctionnalité LLAMA a pour les organisations afin d’apporter leurs propres modèles ML dans le pipeline d’application.
Pickle, qui désérialise automatiquement les objets Python, est intrinsèquement capable d’exécuter des codes arbitraires tout en désérialisant des données non fiables (fabriquées) envoyées par les attaquants, en particulier avec l’implémentation PyZMQ exposée (une liaison Python pour Zeromq).
« Dans les scénarios où la prise Zeromq est exposée sur le réseau, les attaquants pourraient exploiter cette vulnérabilité en envoyant des objets malveillants fabriqués à la prise », ont déclaré les chercheurs, ajoutant que le décapage de ces objets pourrait permettre aux attaquants de « réaliser une exécution de code arbitraire (RCE) sur la machine hôte. «
Méta a probablement sous-estimé la criticité
Oligo a signalé la vulnérabilité à Meta le 29 septembre 2024, qui l’a ensuite reconnue et a publié un correctif sur Github le 10 octobre 2024, avec une version 0.0.41 corrigée poussée vers PYPI.
Meta, le 24 octobre 2024, a ensuite publié CVE-2024-50050 avec un score CVSS de 6,3 (gravité moyenne). Oligo, cependant, a souligné que la nature de la vulnérabilité justifie un score beaucoup plus élevé.
Snyk, une société de sécurité de la chaîne d’approvisionnement des logiciels, a attribué à la vulnérabilité un score CVSS critique de 9,3 sous les version 4.0 et 9,8 sous la version 3.1.
Meta n’a pas répondu aux questions sur la clarté de la cote de gravité du défaut avant la publication de cet article. La vulnérabilité est actuellement en attente d’analyse par la base de données nationale de vulnérabilité (NVD), un référentiel complet de vulnérabilités divulguées publiquement, gérées par l’Institut national américain des normes et de la technologie (NIST).