CVE-2026-87988 : lecture et écriture arbitraires via disparité entre commandes auto-approuvées et liste de contrôle des chemins dans Mistral vibe
SCORE DE MENACE HERMES & DÉSYNCHRONISATION DE LISTE BLANCHE
Cible :Mistral Vibe Coding Agent (mistral-vibe) Le score CVSS v4.0 évalue la CVE-2026-87988 à la note maximale de 10.0 (Critique, CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H). Le score Hermes s'établit à 98 (CRITIQUE). Cette criticité découle d'une dérive architecturale entre listes d'autorisation : l'élargissement de l'auto-approbation sans contrôle de chemin associé permet des opérations de lecture et d'écriture non sollicitées sur l'ensemble de l'hôte.
CVE-2026-87988: Mistral Vibe Arbitrary Read/Write via Discrepancy Between Auto-Approved Commands and Path Control ListVULNÉRABILITÉ
Software platform affected by security vulnerabilities and agentic attack patterns.
🔍 Pourquoi cette relation ? (Preuves & Provenance)
“Confirmed security vulnerability in Mistral Vibe Coding Agent documented in Hermes dossier.”
- [vulnerability_report]
- [government_confirmation]CISA verified active exploitation in the wild and mandated federal remediation deadline in KEV entry. — Source : Cybersecurity & Infrastructure Security Agency (CISA): CISA Adds CVE-2026-59822 to Known Exploited Vulnerabilities Catalog (Fiabilité : VERY_HIGH)
Adversary embeds covert payload instructions into retrieved external data (web pages, repositories, emails) that subvert model planning when parsed by autonomous agents.
🔍 Pourquoi cette relation ? (Preuves & Provenance)
“CVE-2026-87988 weaponizes the agentic attack pattern formalized under AAP-002.”
- [technical_analysis]Pillar Security demonstrated that executing export BASH_ENV in Auto-Run causes bash to source hostile payloads upon subsequent commands. — Source : Pillar Security Research: Bypassing Cursor Auto-Run: When Shell Built-ins Lead to Host RCE (Fiabilité : HIGH)
Adversarial subversion of structured tool execution arguments (SQL, Shell, Filepath) passed from an LLM agent to host OS tools or MCP endpoints.
🔍 Pourquoi cette relation ? (Preuves & Provenance)
“CVE-2026-87988 weaponizes the agentic attack pattern formalized under AAP-003.”
- [technical_analysis]Pillar Security demonstrated that executing export BASH_ENV in Auto-Run causes bash to source hostile payloads upon subsequent commands. — Source : Pillar Security Research: Bypassing Cursor Auto-Run: When Shell Built-ins Lead to Host RCE (Fiabilité : HIGH)
Adversary injects explicit formatting tags or role-inversion prompts directly into user input to strip system instructions and escape developer-enforced guardrails.
🔍 Pourquoi cette relation ? (Preuves & Provenance)
“CVE-2026-87988 weaponizes the agentic attack pattern formalized under AAP-001.”
- [technical_analysis]Pillar Security demonstrated that executing export BASH_ENV in Auto-Run causes bash to source hostile payloads upon subsequent commands. — Source : Pillar Security Research: Bypassing Cursor Auto-Run: When Shell Built-ins Lead to Host RCE (Fiabilité : HIGH)
1. Contexte technique & matrice des versions affectées
Section intitulée « 1. Contexte technique & matrice des versions affectées »| Paramètre | Spécification Technique | Contexte Threat Intelligence |
|---|---|---|
| Identifiant CVE | CVE-2026-87988 | Découvert par Esteban Tonglet (HiddenLayer) |
| Faiblesse CWE | CWE-732 (Contrôle d’accès défaillant), CWE-22 (Traversée de répertoire) | Désynchronisation de listes blanches et drapeaux d’écriture |
| Vecteur d’attaque | Injection indirecte de prompt (AAP-002) / AAP-003 | Pull requests GitHub, issues, dépôts clonés |
| Composant vulnérable | Moteur de politique de sécurité de Mistral Vibe | 31 commandes omises de la vérification de chemin |
| Versions affectées | mistral-vibe < 1.1.0 | Configuration avec auto-approbation par défaut |
| Version corrigée | vibe >= 1.1.0 | Modèle de contrôle d’accès unifié par capacités |
| Impact systémique | Lecture et écriture arbitraires totales, exécution de code | Compromission complète du poste développeur |
2. Décomposition technique approfondie & cause racine
Section intitulée « 2. Décomposition technique approfondie & cause racine »A. Les 31 commandes omises de la vérification de chemin
Section intitulée « A. Les 31 commandes omises de la vérification de chemin »Mistral Vibe maintenait deux structures de données disjointes :
AUTO_APPROVED_COMMANDS: commandes autorisées sans confirmation.PATH_CHECKED_COMMANDS: commandes dont les arguments doivent résider dans le dossier de travail.
Dans les versions antérieures à 1.1.0, 31 commandes ajoutées à la première liste étaient absentes de la seconde :
# Évaluation vulnérable dans Mistral Vibe (< 1.1.0)def check_command_allowed(cmd_name, cmd_args, workspace_root): if cmd_name in AUTO_APPROVED_COMMANDS: # ANOMALIE : Seul un sous-ensemble de commandes fait l'objet d'un contrôle de chemin ! if cmd_name in PATH_CHECKED_COMMANDS: return all(is_safe_workspace_path(arg, workspace_root) for arg in cmd_args) # Pour les 31 commandes omises : return True # AUTO-APPROUVÉ SANS AUCUNE VÉRIFICATION D'ARGUMENT ! return FalsePour chacune de ces 31 commandes, un attaquant pouvait cibler /etc/shadow, /root/.ssh/id_rsa, ou tout autre chemin système sans déclencher d’avertissement.
B. Utilitaires de lecture dotés de drapeaux d’écriture (sort -o)
Section intitulée « B. Utilitaires de lecture dotés de drapeaux d’écriture (sort -o) »Une seconde faiblesse résidait dans l’hypothèse selon laquelle les utilitaires de traitement de texte sont purement passifs. En particulier, sort dispose de l’option -o (--output) :
sort -o /home/cible/.bash_profile /tmp/commandes_malveillantesVibe considérait sort comme inoffensif. Comme l’argument -o n’était pas traité comme une écriture de fichier, la commande s’exécutait silencieusement et écrasait le fichier cible.
3. Scénario d’attaque & exploitation
Section intitulée « 3. Scénario d’attaque & exploitation »sequenceDiagram autonumber actor Attaquant as Attaquant / Dépôt Piégé participant Agent as Agent Mistral Vibe participant Moteur as Moteur de Politique Vibe participant OS as Système de Fichiers Hôte participant Cible as Fichier Système Cible
Attaquant->>Agent: Injection de prompt incitant à écrire un fichier (AAP-002) Agent->>Moteur: Commande : sort -o /root/.ssh/authorized_keys /tmp/cle Moteur->>Moteur: Vérifie 'sort' -> Présent dans AUTO_APPROVED Moteur->>Moteur: Vérifie si 'sort' est dans PATH_CHECKED -> Absent ! Note over Moteur: Aucun contrôle de chemin effectué. AUTO-APPROUVÉ ! Moteur->>OS: Exécute : sort -o /root/.ssh/authorized_keys /tmp/cle OS->>Cible: Écrase authorized_keys avec la clé de l'attaquant Cible-->>Attaquant: L'attaquant se connecte en SSH avec accès root !4. Détection & chasse aux menaces
Section intitulée « 4. Détection & chasse aux menaces »Règle Sigma
Section intitulée « Règle Sigma »title: Modification Arbitraire de Fichier via sort -o sous Mistral Vibeid: 87988001-vibe-sort-output-overwrite-frstatus: experimentaldescription: Détecte l'utilisation de sort avec le paramètre -o ciblant des fichiers sensibles sous Mistral Vibe.references: - https://blog.marcfredericgomez.fr/six-contournements-de-permissions-sur-mistral-vibe/author: Hermes Codex Cyber Defense Teamlogsource: category: process_creation product: linuxdetection: selection_parent: CommandLine|contains: 'vibe' selection_sort: CommandLine|re: 'sort\s+.*-o\s+(~|\/etc|\/root|\/home|\/var)' condition: selection_parent and selection_sortlevel: critical5. Défense, durcissement & remédiation
Section intitulée « 5. Défense, durcissement & remédiation »- Mise à jour immédiate : déployer
vibe >= 1.1.0. Le nouveau modèle unifié vérifie rigoureusement chaque argument de commande et chaque drapeau d’écriture. - Immutabilité du système hôte : monter les répertoires système en lecture seule et confiner l’espace de travail dans un volume temporaire dédié.
- Validation systématique des drapeaux d’écriture : interdire l’auto-approbation pour toute commande comportant des drapeaux d’écriture (
-o,--output). - Surveillance AgentThreat Studio : activer les contrôles de schéma de paramètres d’AgentThreat Studio contre AAP-003 : Altération des paramètres d’outils.
6. Références croisées
Section intitulée « 6. Références croisées »- CVE-2026-87983 : lecture arbitraire via chemins avec guillemets
- CVE-2026-87984 : écriture arbitraire via omission des redirections shell
- CVE-2026-87985 : RCE via le quoting ANSI-C dans
find -exec - CVE-2026-87986 : injection de commande via les nœuds d’erreur syntaxique
- CVE-2026-87987 : RCE via stripping des variables d’environnement
- AAP-001 : violation des frontières de contexte
- AAP-002 : injection indirecte de contexte
- AAP-003 : altération des paramètres d’outils