Aller au contenu

CVE-2026-87988 : lecture et écriture arbitraires via disparité entre commandes auto-approuvées et liste de contrôle des chemins dans Mistral vibe

HERMES

SCORE DE MENACE HERMES & DÉSYNCHRONISATION DE LISTE BLANCHE

Cible : Mistral Vibe Coding Agent (mistral-vibe)
Confiance : 99%
98 / 100
CRITIQUE

Mesure la pertinence opérationnelle réelle, la militarisation de l'exploit et la posture de menace active.

Décomposition des dimensions
Exploitabilité 20 / 20
Activité de menace 19 / 20
Militarisation 20 / 20
Exposition 19 / 20
Prévalence 18 / 20
Impact 20 / 20
Maturité de l'exploit 20 / 20
Potentiel d'attaque en chaîne 20 / 20
⚖️ Divergence & Justification opérationnelle

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.

🕸️ Graphe de connaissances connecté & Provenance

CVE-2026-87988: Mistral Vibe Arbitrary Read/Write via Discrepancy Between Auto-Approved Commands and Path Control ListVULNÉRABILITÉ

Nœuds connectés : 4
Relations sortantes actives
→ affectsCOMPOSANTMistral Vibe Coding Agent
98% VERY_HIGH

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.”

Preuves vérifiées associées :
→ exploitsMODÈLE D'ATTAQUEAAP-002: Indirect Context Injection
92% 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.”

Preuves vérifiées associées :
92% VERY_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.”

Preuves vérifiées associées :
→ exploitsMODÈLE D'ATTAQUEAAP-001: Direct System Prompt Override
92% VERY_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.”

Preuves vérifiées associées :

1. Contexte technique & matrice des versions affectées

Section intitulée « 1. Contexte technique & matrice des versions affectées »
ParamètreSpécification TechniqueContexte Threat Intelligence
Identifiant CVECVE-2026-87988Découvert par Esteban Tonglet (HiddenLayer)
Faiblesse CWECWE-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’attaqueInjection indirecte de prompt (AAP-002) / AAP-003Pull requests GitHub, issues, dépôts clonés
Composant vulnérableMoteur de politique de sécurité de Mistral Vibe31 commandes omises de la vérification de chemin
Versions affectéesmistral-vibe < 1.1.0Configuration avec auto-approbation par défaut
Version corrigéevibe >= 1.1.0Modèle de contrôle d’accès unifié par capacités
Impact systémiqueLecture et écriture arbitraires totales, exécution de codeCompromission 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 :

  1. AUTO_APPROVED_COMMANDS : commandes autorisées sans confirmation.
  2. 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 False

Pour 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) :

Fenêtre de terminal
sort -o /home/cible/.bash_profile /tmp/commandes_malveillantes

Vibe 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.


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 !

title: Modification Arbitraire de Fichier via sort -o sous Mistral Vibe
id: 87988001-vibe-sort-output-overwrite-fr
status: experimental
description: 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 Team
logsource:
category: process_creation
product: linux
detection:
selection_parent:
CommandLine|contains: 'vibe'
selection_sort:
CommandLine|re: 'sort\s+.*-o\s+(~|\/etc|\/root|\/home|\/var)'
condition: selection_parent and selection_sort
level: critical

  1. 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.
  2. 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é.
  3. Validation systématique des drapeaux d’écriture : interdire l’auto-approbation pour toute commande comportant des drapeaux d’écriture (-o, --output).
  4. 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.