GhostApproval est le nom que Wiz a donné à une faille trouvée dans au moins six assistants de code IA populaires, révélée en juillet 2026. En bref : un dépôt piégé peut pousser votre agent de code à écrire des fichiers hors de votre projet - et, dans les pires cas, avant même que vous cliquiez sur « approuver ». C'est un bon rappel que laisser un agent toucher à votre système de fichiers n'est sûr que dans la mesure de ce que la fenêtre d'approbation affiche vraiment. Voici ce qu'est GhostApproval, les outils touchés et comment se protéger.
Comment fonctionne GhostApproval
L'astuce combine deux vieilles faiblesses : suivre les liens symboliques (CWE-61) et une interface trompeuse (CWE-451). Un dépôt malveillant contient un symlink - un fichier qui n'est qu'un pointeur vers un autre chemin. Son nom paraît anodin, disons project_settings.json, mais il pointe vers quelque chose de sensible comme ~/.ssh/authorized_keys. Vous demandez à l'agent d'éditer « le fichier de réglages » ; il suit le lien et écrit dans la vraie cible - par exemple en ajoutant la clé SSH d'un attaquant. Point clé : la fenêtre de confirmation affiche le nom anodin du symlink, pas la destination résolue. Comme le dit Wiz, « l'agent savait, l'utilisateur non » : le raisonnement du modèle reconnaissait parfois le chemin dangereux alors que la fenêtre le cachait.
La variante dangereuse : l'écriture avant votre accord
Dans certains outils, l'écriture a lieu avant même l'apparition de la fenêtre Accepter/Rejeter, transformant la confirmation en bouton d'annulation plutôt qu'en barrière. Wiz décrit exactement cela dans Windsurf : la clé SSH d'un attaquant était écrite dans ~/.ssh/authorized_keys avant que l'utilisateur puisse approuver. C'est une exécution de code à distance avant autorisation - le contrôle humain arrive après que le mal est fait.

Les outils touchés et leur statut
Wiz a testé six assistants et a signalé une variante dans chacun. Voici le statut divulgué, rapporté de façon neutre :
- Cursor - corrigé (CVE-2026-50549, version 3.0+).
- Amazon Q Developer - corrigé (CVE-2026-12958, language server 1.69.0).
- Google Antigravity - corrigé (déployé en mai 2026).
- Augment - accusé de réception ; pas de correctif livré à la divulgation.
- Windsurf - accusé de réception ; la variante avant-autorisation, pas de correctif livré à la divulgation.
- Anthropic Claude Code - Anthropic considère le problème hors de son modèle de menace, au motif qu'un utilisateur confirme faire confiance à un dossier au premier démarrage de Claude Code ; par ailleurs, Claude Code a ajouté des avertissements sur les symlinks dans une version antérieure.
Pourquoi cela dépasse un simple bug
GhostApproval n'est pas vraiment l'erreur d'un seul éditeur - c'est un motif. Deux choix de conception le causent : un bac à sable superficiel qui ne résout pas le chemin canonique d'un fichier avant d'agir, et des approbations humaines formelles plutôt qu'éclairées, car vous approuvez un nom au lieu de la vraie action. Tout agent avec un large accès au système de fichiers peut tomber dans ce piège. C'est la même classe de risque que dans notre guide sur la sécurité des agents IA : autonomie plus accès signifie qu'une mauvaise instruction devient une vraie action.
Comment se protéger
- Mettez vos outils à jour maintenant. Plusieurs éditeurs l'ont corrigé ; utilisez la dernière version de votre assistant de code.
- Ne faites confiance qu'aux dépôts de confiance. Méfiez-vous de laisser un agent agir dans des dépôts inconnus ou fraîchement clonés.
- Appliquez le moindre privilège. Faites tourner les agents dans un conteneur ou un bac à sable qui n'atteint pas
~/.ssh, vos identifiants cloud ou d'autres secrets. - Lisez les fenêtres. Méfiez-vous des éditions de fichiers de configuration et de dotfiles, et préférez les outils qui résolvent les symlinks et affichent le vrai chemin cible.
En résumé
GhostApproval montre que le « contrôle humain » ne vaut que ce que la fenêtre révèle vraiment. Un symlink peut diriger un agent bien intentionné vers vos secrets, et une confirmation qui cache le vrai chemin - ou apparaît après l'écriture - offre un faux confort. Mettez à jour votre assistant de code IA, restreignez ce qu'il peut toucher, et ne considérez les approbations comme utiles que lorsqu'elles vous montrent la vraie destination.



