🔍 Contexte

Publié le 1er juillet 2026 par Cato AI Labs (blog Cato Networks), cet article présente la découverte de deux vulnérabilités critiques dans Cursor IDE, un environnement de développement intégré basé sur l’IA utilisé par plus de la moitié des entreprises du Fortune 500.

🚨 Vulnérabilités identifiées

Les deux vulnérabilités, regroupées sous le nom DuneSlide, ont obtenu un score CVSS de 9.8 et ont été assignées les identifiants CVE-2026-50548 et CVE-2026-50549.

Vulnérabilité #1 : Manipulation du paramètre Working Directory (CVE-2026-50548)

  • Le sandbox de Cursor construit ses politiques de sécurité en se basant sur le répertoire de travail (working_directory) passé en paramètre à l’outil run_terminal_cmd
  • Une injection de prompt peut forcer le LLM à définir ce paramètre sur un chemin contrôlé par l’attaquant, hors du périmètre du projet
  • Cela permet d’écrire dans des fichiers critiques comme /Applications/Cursor.app/Contents/Resources/app/resources/helpers/cursorsandbox, ~/.zshrc, ~/.zshenv ou ~/Library/LaunchAgents
  • L’écrasement du binaire cursorsandbox neutralise le sandbox pour les commandes suivantes, aboutissant à un RCE non sandboxé

Vulnérabilité #2 : Échec de canonicalisation des liens symboliques (CVE-2026-50549)

  • Une injection de prompt instruit l’agent Cursor de créer un lien symbolique dans le répertoire du projet pointant vers un fichier externe
  • La logique de canonicalisation contient un fallback dangereux : si la résolution échoue (chemin inexistant ou permissions insuffisantes), Cursor utilise le chemin du symlink original
  • Un attaquant peut créer un symlink en écriture seule, forçant Cursor à supposer que le chemin résolu est le symlink lui-même
  • Via l’outil Write, l’attaquant écrase le binaire cursorsandbox à travers le symlink, neutralisant le sandbox et obtenant un RCE complet

🎯 Vecteur d’attaque

  • Zero-click : aucune interaction utilisateur spécifique requise
  • Déclenché lorsque la victime effectue une requête anodine qui ingère un payload contrôlé par l’attaquant depuis une source non fiable (serveur MCP malveillant ou résultat de recherche web empoisonné)
  • Conduit à une compromission complète du système hôte et des espaces de travail SaaS connectés

📅 Chronologie de divulgation responsable

  • 19 février : Signalement à l’équipe Cursor
  • 23 février : Rejet initial (hors du modèle de menace de Cursor)
  • 26 février : Escalade directe à l’équipe sécurité Cursor
  • 1er avril : Confirmation du correctif pour Cursor 3.0 (CVE-2026-50548)
  • 1er juin : Confirmation du correctif pour CVE-2026-50549 dans Cursor 3.0
  • 5 juin : Attribution des CVE-2026-50548 et CVE-2026-50549

📄 Nature de l’article

Il s’agit d’une publication de recherche technique par Cato AI Labs, visant à documenter des vulnérabilités architecturales dans les agents de codage IA et à alerter l’écosystème sur les risques systémiques liés à l’injection de prompt dans des environnements d’exécution autonomes.

🧠 TTPs et IOCs détectés

TTP

  • T1055 — Process Injection (Defense Evasion)
  • T1574 — Hijack Execution Flow (Persistence)
  • T1059 — Command and Scripting Interpreter (Execution)
  • T1548 — Abuse Elevation Control Mechanism (Privilege Escalation)
  • T1190 — Exploit Public-Facing Application (Initial Access)

IOC

  • CVEs : CVE-2026-50548NVD · CIRCL
  • CVEs : CVE-2026-50549NVD · CIRCL
  • Fichiers : cursorsandbox
  • Chemins : /Applications/Cursor.app/Contents/Resources/app/resources/helpers/cursorsandbox
  • Chemins : ~/.zshrc
  • Chemins : ~/.zshenv
  • Chemins : ~/Library/LaunchAgents

🟢 Indice de vérification factuelle : 70/100 (haute)

  • ✅ catonetworks.com — source reconnue (Rösti community) (20pts)
  • ✅ 10757 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 7 IOCs (IPs/domaines/CVEs) (10pts)
  • ⬜ pas d’IOC vérifié (0pts)
  • ✅ 5 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ 0/2 CVE(s) confirmée(s) (0pts)

🔗 Source originale : https://www.catonetworks.com/blog/duneslide-two-critical-rce-vulnerabilities/