La sécurité de l'IA devient un sujet préoccupant avec des techniques en pleine évolution. Preuve en est la faille critique trouvée dans le LLM Llama de Meta pouvant entraîner des attaques RCE (remote code execution). Elles peuvent engendrer sur du vol et de la compromission de données, voire aller jusqu'à de la prise de contrôle de LLM. Répertorié en tant que CVE-2024-50050, ce trou de sécurité lié découle de l'utilisation inappropriée de la bibliothèque open source orientée message (pyzmq) dans les frameworks d'IA.
« L'équipe de recherche d'Oligo a découvert une vulnérabilité critique dans meta-llama, un framework open source de Meta pour construire et déployer des applications GenAI », ont déclaré les chercheurs en sécurité d'Oligo dans un billet de blog. « La faille, CVE-2024-50050, permet aux attaquants d'exécuter un code arbitraire sur le serveur d'inférence llama-stack depuis le réseau. » Selon les chercheurs du fournisseur en solutions de sécurité, un certain nombre de frameworks d'IA open source exploitent une bibliothèque open source orientée message (pyzmq) d'une « manière peu sûre », permettant l'exécution de code à distance. Le problème vient du fait que Llama Stack utilise pickle, un module Python pour la sérialisation et la désérialisation d'objets Python, dans son implémentation « inference API », une fonctionnalité que Llama propose aux entreprises pour intégrer leurs propres modèles ML dans le pipeline applicatif.
Une faille signalée et corrigée par Meta
Pickle est intrinsèquement capable d'exécuter des codes arbitraires lors de la désérialisation de données non fiables (crafts) envoyées par des attaquants, en particulier avec la mise en œuvre exposée de pyzmq (une liaison Python pour ZeroMQ). « Dans les scénarios où le socket ZeroMQ est exposé sur le réseau, les attaquants pourraient exploiter cette vulnérabilité en envoyant des objets malveillants élaborés au socket », ont déclaré les chercheurs, ajoutant que l'unpickling de ces objets [conversion de fichier binaire en objets Python, ndlr] pourrait donner aux attaquants la capacité de réaliser une exécution de code arbitraire (RCE) sur la machine hôte. Suite à cette découverte, l'équipe de sécurité de Meta a rapidement patché Llama Stack, en changeant le format de sérialisation pour la communication socket de pickle à JSON.
Oligo Research a signalé la vulnérabilité à Meta le 29 septembre 2024, qui l'a ensuite reconnue et publié un correctif sur GitHub le 10 octobre 2024, avec une version corrigée 0.0.41 poussée sur l'index de package Python (PyPi). Le 24 octobre dernier, Meta l'a ensuite identifiée en tant que CVE-2024-50050 avec un score CVSS de 6,3 (gravité moyenne). De son côté Snyk, spécialisé dans la sécurité du développement logiciel, a reconnu une plus grande dangerosité de ce trou de sécurité en lui attribuant un score CVSS critique de 9,3 pour la version 4.0 de Llama Stack et même de 9,8 pour la v3.1.
Meta n'a pas répondu à CSO aux demandes de précision su la gravité de la faille jusqu'à la publication de cet article. La vulnérabilité est actuellement en attente d'analyse par la National Vulnerability Database (NVD), un référentiel complet de vulnérabilités divulguées publiquement, géré par le NIST.
Commentaire