Skip to content

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

HERMES

HERMES THREAT SCORE & WHITELIST SYNCHRONIZATION BREAKDOWN

Target: Mistral Vibe Coding Agent (mistral-vibe)
Confidence: 99%
98 / 100
CRITICAL

Measures real-world operational relevance, exploit weaponization, and active threat posture.

Dimension Breakdown
Exploitability 20 / 20
Threat Activity 19 / 20
Weaponization 20 / 20
Exposure 19 / 20
Prevalence 18 / 20
Impact 20 / 20
Exploit Maturity 20 / 20
Attack Chain Potential 20 / 20
⚖️ Divergence & Operational Rationale

CVSS v4.0 evaluates CVE-2026-87988 at a maximum 10.0 (Critical, 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). The Hermes Threat Score assesses this vulnerability at 98 (CRITICAL). This reflects architectural authorization drift where expanding an auto-approval whitelist without matching path-containment controls allows unprompted read and write operations across the entire operating system.

🕸️ Connected Knowledge Graph & Provenance

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

Connected Nodes: 4
Active Relationships (Outgoing)
→ affectsPRODUCTMistral Vibe Coding Agent
98% VERY_HIGH

Software platform affected by security vulnerabilities and agentic attack patterns.

🔍 Why is this related? (Evidence & Provenance)

“Confirmed security vulnerability in Mistral Vibe Coding Agent documented in Hermes dossier.”

Supporting Verified Evidence:
→ exploitsAGENTIC ATTACK_PATTERNAAP-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.

🔍 Why is this related? (Evidence & Provenance)

“CVE-2026-87988 weaponizes the agentic attack pattern formalized under AAP-002.”

Supporting Verified Evidence:
→ exploitsAGENTIC ATTACK_PATTERNAAP-003: Tool Parameter Tampering & Built-in Bypass
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.

🔍 Why is this related? (Evidence & Provenance)

“CVE-2026-87988 weaponizes the agentic attack pattern formalized under AAP-003.”

Supporting Verified Evidence:
→ exploitsAGENTIC ATTACK_PATTERNAAP-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.

🔍 Why is this related? (Evidence & Provenance)

“CVE-2026-87988 weaponizes the agentic attack pattern formalized under AAP-001.”

Supporting Verified Evidence:

1. Technical Context & Affected Software Matrix

Section titled “1. Technical Context & Affected Software Matrix”
ParameterTechnical SpecificationThreat Intelligence Context
CVE IdentifierCVE-2026-87988Discovered by Esteban Tonglet (HiddenLayer)
Common Weakness EnumerationCWE-732 (Incorrect Permission Assignment), CWE-22 (Path Traversal)Whitelist desynchronization and unmonitored write flags
Attack VectorIndirect Prompt Injection (AAP-002) / AAP-003Malicious GitHub PRs, issues, or repo contents
Vulnerable ComponentPolicy engine in Mistral Vibe (vibe permission matrix)31 commands omitted from path control check
Affected Versionsmistral-vibe < 1.1.0Default auto-approval configuration
Remediated Versionvibe >= 1.1.0Unified capability-based permission model
Systemic ImpactUnrestricted host read and write access, full remote code executionComplete control of developer system and secrets

2. In-Depth Technical Decomposition & Root Cause

Section titled “2. In-Depth Technical Decomposition & Root Cause”

Mistral Vibe maintained two separate data structures:

  1. AUTO_APPROVED_COMMANDS: Tools allowed to execute without user approval.
  2. PATH_CHECKED_COMMANDS: Tools whose arguments must be verified as within the current workspace directory.

In versions prior to 1.1.0, 31 commands added to AUTO_APPROVED_COMMANDS were omitted from PATH_CHECKED_COMMANDS. When the permission evaluator encountered one of these 31 commands:

# Vulnerable policy evaluation in Mistral Vibe (pre-1.1.0)
def check_command_allowed(cmd_name, cmd_args, workspace_root):
if cmd_name in AUTO_APPROVED_COMMANDS:
# FLAW: Only a subset of commands were subjected to path checks!
if cmd_name in PATH_CHECKED_COMMANDS:
return all(is_safe_workspace_path(arg, workspace_root) for arg in cmd_args)
# If cmd_name is one of the 31 omitted commands:
return True # AUTO-APPROVED WITHOUT CHECKING ANY PATH ARGUMENT!
return False

For any of the 31 omitted commands, an attacker could supply /etc/shadow, /root/.ssh/id_rsa, or any other host path without triggering a security prompt.

B. Read-Only Utilities with Arbitrary Write Flags (sort -o)

Section titled “B. Read-Only Utilities with Arbitrary Write Flags (sort -o)”

A second compounding vulnerability was the assumption that POSIX query and text processing utilities are exclusively read-only. In particular, sort supports the -o (--output) flag:

Terminal window
sort -o /home/target/.bash_profile /tmp/malicious_commands

Vibe evaluated sort as an allowed, safe text utility. Because sort was either omitted from path checks or classified as read-only, the -o argument was treated as a benign argument rather than an arbitrary file write operation.


sequenceDiagram
autonumber
actor Attacker as Attacker / Poisoned Repo
participant Agent as Mistral Vibe Agent
participant Policy as Vibe Policy Engine
participant OS as Host OS Filesystem
participant Target as Sensitive Target File
Attacker->>Agent: Prompt injection triggers file modification (AAP-002)
Agent->>Policy: Command: sort -o /root/.ssh/authorized_keys /tmp/key
Policy->>Policy: Checks command 'sort' -> Present in AUTO_APPROVED
Policy->>Policy: Checks if 'sort' in PATH_CHECKED -> Missing!
Note over Policy: No path inspection performed. AUTO-APPROVED!
Policy->>OS: Subshell runs: sort -o /root/.ssh/authorized_keys /tmp/key
OS->>Target: Overwrites authorized_keys with attacker key
Target-->>Attacker: Attacker connects via SSH with root privileges!
  1. Arbitrary File Overwrite via sort -o:
    Terminal window
    sort -o ~/.bashrc /tmp/staged_backdoor
  2. System File Exfiltration via Omitted Auto-Approved Tools:
    Terminal window
    # Utilizing omitted commands with zero path validation
    comm /etc/shadow /dev/null
    diff /root/.aws/credentials /dev/null

4. Detection, Threat Hunting & DFIR Playbooks

Section titled “4. Detection, Threat Hunting & DFIR Playbooks”
title: Mistral Vibe sort -o Arbitrary File Modification
id: 87988001-vibe-sort-output-overwrite
status: experimental
description: Detects sort utility with -o parameter targeting sensitive files executed under 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. Apply Official Patch: Upgrade to vibe >= 1.1.0. The codebase replaces dual whitelists with a unified capability-based access model that inspects every argument and output flag.
  2. Strict File System Immutability: Mount root directories as read-only and restrict write permissions exclusively to a designated temporary scratch volume.
  3. Mandatory User Confirmation for File Modification: Disable auto-approval for any command bearing write flags (-o, --output).
  4. Deploy AgentThreat Studio Protections: Employ parameter validation rules from AgentThreat Studio covering AAP-003: Tool Parameter Tampering.

Section titled “6. Related Vulnerabilities & Cross-References”