Une vieille classe de failles shell revient dans un costume flambant neuf. Adversa AI affirme avoir contourné les garde-fous de 10 des 11 agents de codage open source testés grâce à une technique baptisée GuardFall, en jouant sur la façon dont Bash réécrit certaines commandes avant de les exécuter. De quoi placer ces assistants, censés générer et lancer des commandes dans vos dépôts, au cœur d’un beau risque pour la chaîne d’approvisionnement logicielle.
Ces outils tournent avec les mêmes privilèges que leur opérateur. Ils touchent au système, aux dépôts Git, aux secrets et aux pipelines CI/CD. Selon Adversa AI, ce n’est pas un bug isolé mais un défaut structurel dans la manière dont ces agents valident ce qu’ils s’apprêtent à exécuter.
Points clés
- Adversa AI a contourné 10 agents de codage open source sur 11 avec la technique GuardFall
- L’attaque exploite l’écart entre le texte validé par l’agent et la commande réécrite par Bash
- Seul l’agent Continue bloque toutes les variantes testées
- Les parades restent temporaires : shell cloisonné, désactivation des modes auto-yes, validation canonique côté agent
L’écart entre ce que l’agent lit et ce que Bash exécute
GuardFall s’appuie sur des astuces shell connues depuis des lustres : la suppression de guillemets lors du traitement par Bash, ou l’usage de $IFS, la variable interne de séparation des champs. Le principe tient en une phrase. L’agent inspecte une chaîne brute, la juge inoffensive, puis Bash la transforme en quelque chose de nettement moins sympathique avant de la lancer.
Adversa AI parle d’un problème de canonisation. Le garde de sécurité regarde une forme textuelle pendant que le shell applique ses propres règles de réécriture au moment d’exécuter. Dans le test, le déclencheur initial vient d’un contournement de validation sur hermes-agent, pourtant équipé d’une liste de refus de 30 motifs regex.
« Un garde inspecte du texte brut, tandis que le shell système (Bash) développe, supprime les guillemets et réécrit le texte avant de l’exécuter. » (Adversa AI, rapport GuardFall)
Le scénario est d’une banalité redoutable. Un ingénieur ouvre un dépôt malveillant, un README ou un Makefile piégé injecte une commande, et l’agent la relaie avec l’autorité du compte de l’utilisateur. SecurityWeek évoque des commandes capables d’exfiltrer des identifiants AWS ou d’effacer des environnements de développement, surtout quand les modes « auto-yes » sont activés dans les pipelines.
Onze agents testés, un seul rescapé
Au menu de l’évaluation : 11 agents open source populaires, dont Hermes, OpenCode et Roo-code. Adversa AI affirme que 10 d’entre eux laissent passer au moins une variante de l’attaque. Un seul ferme la porte dans tous les cas testés, et il s’appelle Continue.
Le rapport classe les techniques en plusieurs familles, jusqu’à une catégorie finale décrite comme des variantes d’arguments produisant le même effet destructeur. Le souci n’est donc pas une syntaxe unique mais une collection de formes d’obfuscation que Bash normalise avant exécution.
L’alerte rejoint une série d’avertissements récents sur les agents de codage autonomes, souvent malmenés par du prompt injection ou le détournement de fichiers de configuration. Ici, Adversa AI pointe une faiblesse située plus bas dans la pile : la commande elle-même, telle que le shell l’interprète.
Des parades encore en sparadrap
Les recommandations des chercheurs restent défensives et, pour l’essentiel, temporaires. SecurityWeek cite l’exécution des agents dans un shell cloisonné, la redirection de $HOME, la désactivation des modes « auto-yes », l’audit des configurations livrées avec les dépôts et le blocage de l’exécution sur les pull requests issues de forks.
La piste plus durable se joue côté conception : déplacer la vérification au sein de l’agent lui-même, avec une évaluation canonique des commandes avant leur passage au shell. L’outil jugerait enfin la forme réellement exécutée, et non le texte brut qu’on lui présente. Une idée qui, en 2026, ressemble surtout à du bon sens redécouvert.
- 11 agents de codage open source testés par Adversa AI.
- 10 agents laissent passer au moins une variante de GuardFall.
- Continue est le seul à bloquer toutes les variantes mentionnées.
- Le contournement repose sur des réécritures Bash anciennes (suppression de guillemets,
$IFS).