- Une vulnérabilité de validation des commandes a été découverte dans le Cortex Code CLI de Snowflake, permettant à un attaquant d’exécuter des commandes arbitraires en dehors du sandbox
- L’attaque est déclenchée via une injection de prompt indirecte, contourne la procédure d’approbation de l’utilisateur, puis télécharge et exécute un script malveillant
- Les commandes à l’intérieur de la syntaxe de process substitution n’étaient pas validées, ce qui permettait l’exécution automatique d’un code malveillant déguisé en commande sûre
- Les attaquants pouvaient utiliser le token d’authentification Snowflake de la victime pour exfiltrer la base de données ou supprimer des tables
- Snowflake a corrigé le problème avec le patch de la version 1.0.25, déployé le 28 février 2026 et appliqué via mise à jour automatique
Aperçu de la vulnérabilité de Cortex Code CLI
- Cortex Code CLI est un agent de code en ligne de commande comparable à Claude Code ou OpenAI Codex, avec une intégration permettant d’exécuter du SQL dans Snowflake
- Deux jours après son lancement, il a été confirmé qu’en raison d’une faille du système de validation des commandes, des commandes spécialement conçues pouvaient être exécutées sans approbation et sortir du sandbox
- Un attaquant pouvait exploiter cela pour utiliser les identifiants Snowflake de la victime afin de mener des actions malveillantes comme l’exfiltration de données ou la suppression de tables
- L’équipe sécurité de Snowflake a vérifié le problème puis l’a corrigé, et le patch a été déployé dans la version 1.0.25
Étapes de la chaîne d’attaque
- Lorsque l’utilisateur lance Cortex avec le mode sandbox activé, le système est censé demander une approbation avant l’exécution d’une commande
- Cependant, un attaquant peut manipuler Cortex au moyen d’une injection de prompt cachée dans un fichier README, afin de l’amener à exécuter des commandes dangereuses
- Le sous-agent de Cortex lit cette injection et exécute la commande sans passer par la procédure d’approbation
- Comme les commandes à l’intérieur de la syntaxe de process substitution
<()> n’étaient pas validées, un code malveillant pouvait être exécuté sous l’apparence d’une commande classée comme sûre
- L’injection définissait également le flag
dangerously_disable_sandbox, ce qui permettait une exécution en dehors du sandbox
- Résultat : un script malveillant était téléchargé puis exécuté sans approbation de l’utilisateur
Impact de l’attaque
- L’attaquant obtenait la capacité d’exécuter du code arbitraire à distance (remote code execution) sur le système de la victime
- En utilisant les identifiants de connexion Snowflake de la victime, il pouvait notamment :
- exfiltrer le contenu de la base de données
- supprimer des tables
- ajouter des comptes utilisateur malveillants
- modifier les règles réseau pour bloquer les utilisateurs légitimes
- Le script malveillant recherchait les tokens d’authentification mis en cache par Cortex et exécutait des requêtes SQL sur Snowflake
- Dans le cas d’un compte développeur, les droits de lecture et d’écriture permettaient l’exfiltration et la destruction de données
Problème de perte de contexte des sous-agents
- Pendant l’exécution de l’attaque, Cortex appelait plusieurs sous-agents, ce qui provoquait une perte de contexte
- L’agent principal avertissait l’utilisateur qu’une commande malveillante avait été détectée, mais le sous-agent l’avait déjà exécutée
- L’utilisateur ne pouvait donc pas savoir qu’une exécution réelle avait déjà eu lieu
Divulgation de la vulnérabilité et réponse
- Le 5 février 2026, PromptArmor a procédé à une divulgation responsable (responsible disclosure) auprès de Snowflake
- Snowflake a collaboré avec PromptArmor tout au long du mois de février pour vérifier et corriger la vulnérabilité
- Le patch a été déployé dans la version 1.0.25 le 28 février, et s’appliquait automatiquement lors du redémarrage de Cortex
- Les tests ont montré un taux de réussite de l’attaque d’environ 50 %, soulignant l’importance de l’entraînement à la sécurité face au caractère non déterministe des LLM
Chronologie principale
- 2 février 2026 : lancement de Snowflake Cortex Code
- 5 février 2026 : signalement de la vulnérabilité par PromptArmor
- 12 février 2026 : fin de la vérification de la vulnérabilité par Snowflake
- 28 février 2026 : déploiement de la version corrigée 1.0.25
- 16 mars 2026 : divulgation conjointe par PromptArmor et Snowflake
Aucun commentaire pour le moment.