TBN Grow
Sécurité des agents IA de code : un AGENTS.md piège Codex

Sécurité des agents IA de code : un fichier AGENTS.md déposé dans Téléchargements pousse Codex et Claude Code à obéir à l'attaquant. Chiffres, coûts, risques, checklist.
Actualité
La sécurité des agents IA de code vient de recevoir une leçon très concrète. Le 22/10/2026, la société de cybersécurité Forever Security a annoncé avoir bloqué un agent IA de programmation en train d'installer le paquet npm malveillant function-color sur la machine réelle d'un client. L'agent n'a pas été « piraté » au sens classique : il a simplement suivi un fichier texte nommé AGENTS.md présent dans le dossier ~/Downloads, là où le développeur avait lancé l'agent. Les 25 et 26/10, The Hacker News et plusieurs sites tech ont relayé l'affaire, avec les résultats de tests menés sur OpenAI Codex et Anthropic Claude Code.
- Le fichier d'instructions est une entrée de confiance pour l'agent. Codex lit
AGENTS.md, Claude Code litCLAUDE.mddans le dossier de travail et les traite comme des consignes du projet. Le fichier malveillant ressemble à de banales notes techniques, mais demande à l'agent d'ajouter un serveur inconnu à sa configuration et d'installer le paquetfunction-color. - Le navigateur peut écrire dans Téléchargements. Selon Forever, une page web peut enregistrer d'elle-même un fichier nommé
AGENTS.md, au contenu de son choix, dans Téléchargements sans le moindre clic. Le système d'exploitation bloque les fichiers exécutables téléchargés (.exe, .app), mais pas les fichiers texte, jusqu'ici considérés comme inoffensifs. - Codex : obéissance dans plus de 90 % des essais. En rejouant le vrai fichier malveillant dans une machine virtuelle isolée, Codex a installé le malware dans « plus de 90 % » des tentatives. La modification touche
~/.codex/config.toml, la configuration commune à toutes les sessions Codex de la machine : le serveur de l'attaquant est donc rechargé ensuite dans n'importe quel dossier. - Claude Code : environ 50 %. Avec un
CLAUDE.mdse faisant passer pour un guide de configuration d'une « passerelle interne », Claude a écrit dans.claude/settings.jsonune variableANTHROPIC_BASE_URLpointant vers le serveur de l'attaquant environ une fois sur deux. Résultat : fuite du jeton de connexion ; les chercheurs ont réutilisé le jeton capturé pour appeler la véritable API. - Aucun correctif à attendre. Pour Forever, OpenAI et Anthropic n'ont pas de faille à corriger : l'agent fait ce pour quoi il est conçu, lire le fichier d'instructions du dossier. La faille vient de l'association d'un dossier où le web peut écrire et d'un dossier auquel l'utilisateur fait implicitement confiance.
| Paramètre | Valeur | Remarque |
|---|---|---|
| Date de publication de l'étude | 22/10/2026 | Forever Security (Gal Weizman, Omer Samet) |
| Paquet npm malveillant | function-color → entraîne function-flag | Campagne MALFEX selon Checkmarx ; cible uniquement Windows |
| Codex suit le fichier malveillant | Plus de 90 % des essais | Selon Forever ; nombre d'essais et version non précisés |
| Claude Code écrit la configuration malveillante | Environ 50 % des essais | Selon Forever ; refus systématique quand le dossier contient des notes de sécurité |
| Claude Code exécute une commande dans la même session | Environ 1 essai sur 5 | Lorsque Claude lance un sous-agent, selon Forever |
| Clients exécutant un agent dans Téléchargements | Environ la moitié | Mesure sur les clients de Forever, selon l'éditeur |
| Sessions d'agent ouvrant un vrai navigateur | Environ 1 sur 4 | Selon Forever |
| Téléchargements cumulés des 8 paquets MALFEX | 40 767 (dont function-flag : 37 419 ; function-color : 300) | Selon Checkmarx, données au 01/10/2026 ; un téléchargement n'équivaut pas à une machine infectée |
Analyse
Analyse : pourquoi un simple fichier texte menace-t-il les agents IA de code ?
Le cœur de l'affaire, c'est que la frontière entre « données » et « commandes » s'est estompée. Pour un éditeur de texte, AGENTS.md n'est que du texte. Pour un agent IA autorisé à lancer des commandes shell, modifier la configuration et installer des paquets, ce même fichier devient une liste de tâches. Forever a intitulé son étude « Markdown est le nouvel exécutable », et techniquement, la formule se tient.
Qu'est-ce qui change par rapport aux attaques classiques ?
| Type d'attaque | Ce que l'utilisateur doit faire | Protections existantes | Niveau de blocage |
|---|---|---|---|
| Fichier .exe/.app malveillant | Ouvrir le fichier, valider l'alerte | SmartScreen, Gatekeeper, antivirus | Élevé : le système bloque les fichiers non signés |
| Paquet npm au nom trompeur (typosquatting) | Se tromper de nom à l'installation | Alertes npm, scanners de dépendances | Moyen : function-flag n'avait pas d'avis de sécurité officiel (selon Checkmarx) |
| Injection de prompt via README/issue | Demander à l'agent de lire un contenu externe | L'agent peut se méfier d'un contenu inconnu | Moyen |
AGENTS.md/CLAUDE.md dans Téléchargements | Simplement lancer l'agent dans ce dossier | Boîte de dialogue de confiance, validation des commandes | Faible si l'utilisateur a pris l'habitude de cliquer « accepter » |
La différence se joue dans la deuxième colonne. Les trois premières attaques exigent une erreur précise de l'utilisateur. La quatrième exploite une habitude courante : télécharger un dépôt ou une archive zip dans Téléchargements, puis lancer l'agent sur place « pour voir ». D'après les propres données de Forever, environ la moitié de ses clients comptent quelqu'un qui exécute un agent dans Téléchargements.
Mécanisme : par quelles étapes passe l'attaque ?
La chaîne d'attaque compte quatre maillons, compréhensibles pour un ingénieur :
1. Écriture du fichier : une page web télécharge automatiquement AGENTS.md dans Téléchargements. Forever a construit une page de démonstration qui le fait ; l'équipe n'a pas pu établir par quelle voie le vrai fichier est arrivé chez le client.
2. Chargement du contexte : au démarrage dans le dossier, l'agent lit automatiquement le fichier d'instructions et l'intègre à son contexte avec un niveau de confiance supérieur à celui d'un contenu web.
3. Modification persistante de la configuration : côté Codex, le fichier demande d'ajouter un bloc [mcp_servers.*] (serveur d'outils MCP) dans ~/.codex/config.toml. Côté Claude Code, il demande de définir ANTHROPIC_BASE_URL dans .claude/settings.json, ce qui fait transiter toutes les requêtes API par le serveur de l'attaquant.
4. Exécution : le faux serveur renvoie des commandes que l'agent exécute, ou l'agent installe directement function-color ; ce paquet entraîne function-flag, qui télécharge et lance un exécutable Windows.
L'étape 3 est la plus dangereuse sur la durée. Une configuration globale modifiée signifie que supprimer AGENTS.md ne suffit pas : le serveur inconnu reste chargé lors des sessions suivantes.
Pourquoi Codex et Claude Code n'obtiennent-ils pas les mêmes résultats ?
L'écart entre plus de 90 % et environ 50 % ne doit pas se lire comme « tel agent est plus sûr que l'autre ». Les deux tests utilisent des fichiers et des objectifs différents : Codex a rejoué le vrai fichier malveillant, tandis que Claude Code a été testé avec un fichier rédigé par les chercheurs. Forever énumère aussi cinq contrôles de Codex à contourner, dont la boîte de dialogue de confiance et le sandbox réseau (via le drapeau --dangerously-bypass-approvals-and-sandbox). L'article ne précise pas dans quelle configuration le chiffre de plus de 90 % a été mesuré. Pour Claude Code, Forever note que Claude demande généralement une validation avant d'écrire la configuration et refuse à chaque fois lorsque le dossier contient des notes de sécurité. Le résultat dépend donc fortement des réglages de validation et du contenu du dossier, pas seulement du modèle.
Impact selon les profils
- Développeurs indépendants : le risque principal est la fuite du jeton de connexion. Un jeton divulgué est une session encore valide ; l'attaquant peut consommer le quota de votre compte ou lire les données auxquelles l'agent a accès.
- Équipes techniques et managers d'ingénierie : la configuration de l'agent se trouve hors du dépôt (
~/.codex/config.toml) et échappe donc à la revue de code. Une machine dont la configuration a été modifiée peut pousser du code problématique dans le dépôt commun sans qu'aucun changement n'apparaisse dans Git. - PME, y compris au Vietnam : beaucoup d'équipes externalisées ou de freelances travaillent sur des ordinateurs personnels et téléchargent souvent le code des clients dans Téléchargements. Sans outil de gestion centralisée des postes, le contrôle de la configuration des agents repose presque entièrement sur chacun.
- Marketeurs et non-développeurs : de plus en plus de personnes utilisent Codex ou Claude Code pour créer une landing page ou un script de traitement de données. Ce public lit rarement les fichiers
.mdinconnus et valide facilement toutes les demandes d'autorisation.
Quel est le coût réel ?
Aucun chiffre de dommage réel n'a été publié ; le tableau ci-dessous compare donc seulement le coût de la prévention à celui de la gestion d'un incident, selon les hypothèses de TBN Grow pour une équipe de 20 développeurs.
| Poste | Hypothèse | Estimation |
|---|---|---|
| Vérification périodique de la configuration des agents | 10 min/personne/mois × 20 personnes | Environ 3,3 heures-personne/mois |
Script d'analyse de config.toml et settings.json | 1 ingénieur, une seule fois | Environ 4 heures-personne |
| Traitement d'une machine infectée | Isoler, réinstaller, renouveler tous les jetons, auditer les dépôts | 1 à 3 jours-personne pour 1 à 2 personnes |
| Revue du code poussé depuis la machine infectée | Relire les commits de la période d'infection | Selon le nombre de commits ; parfois plusieurs jours-personne |
Selon ces hypothèses, la prévention coûte moins de 4 heures-personne par mois, alors qu'un seul incident peut coûter bien davantage, sans compter le risque de fuite de données clients. Cette comparaison est purement illustrative ; le coût réel dépend de la taille de l'équipe et du type de données.
Risques et limites de l'étude
- Un incident, plusieurs tests. La seule preuve hors laboratoire est, à ce jour, un cas sur une machine client, bloqué avant l'exécution du code. Aucun dommage réel n'a été rapporté publiquement.
- Vecteur d'infection inconnu. Forever démontre qu'une page web *peut* écrire seule un fichier dans Téléchargements, mais ignore si de vrais attaquants ont utilisé cette méthode.
- L'auteur de l'étude vend une solution. Forever commercialise un produit de surveillance des agents et a donc intérêt à mettre le risque en avant. Cela ne rend pas les chiffres faux, mais une vérification indépendante s'impose.
- Méthodologie incomplète : l'article ne précise ni le nombre d'essais, ni les versions de Codex et de Claude Code testées.
- Le malware ne vise que Windows (selon Checkmarx), mais la fuite de jeton sur Claude Code ne dépend pas du système d'exploitation.
Points à vérifier
- Les chiffres « plus de 90 % » et « environ 50 % » proviennent d'une source unique (Forever) ; The Hacker News et les autres sites ne font que les reprendre. Aucun laboratoire indépendant n'a reproduit les tests.
- OpenAI et Anthropic n'ont pas réagi publiquement dans les articles consultés par TBN Grow.
- Vous pouvez vérifier votre machine dès maintenant : ouvrez
~/.codex/config.tomlet cherchez un bloc[mcp_servers.*]inconnu ou une valeurchatgpt_base_urlmodifiée ; cherchez dans chaque.claude/settings.jsonune ligneANTHROPIC_BASE_URLque vous n'avez pas définie ; vérifiez la présence defunction-coloroufunction-flagdansnode_moduleset dans l'historique d'installation des paquets.
L'avis de TBN Grow
Il ne s'agit pas d'une faille propre à Codex ou à Claude Code, mais d'une conséquence logique du fait de laisser un agent agir à notre place : tout fichier qu'il lit peut devenir une commande. Les équipes qui font tourner leurs agents en mode sans validation devraient resserrer les règles dès cette semaine. Celles qui utilisent le mode avec validation doivent tout de même prendre l'habitude de lire les fichiers d'instructions inconnus avant de lancer l'agent. Inutile d'attendre un correctif : selon les chercheurs eux-mêmes, il n'y en a aucun à attendre.
À suivre
Sécurité des agents IA de code : ce qu'il faut surveiller
À faire tout de suite (checklist)
- Ne lancez jamais un agent IA dans `~/Downloads`. Déplacez le code dans un dossier de projet dédié avant d'exécuter l'agent.
- Lisez tout `AGENTS.md` ou `CLAUDE.md` que vous n'avez pas écrit, y compris dans un dépôt fraîchement cloné. Méfiez-vous de toute demande d'ajout de serveur, de changement d'adresse d'API ou d'installation de paquet inconnu.
- Contrôlez la configuration :
~/.codex/config.toml(blocs[mcp_servers.*],chatgpt_base_url) et.claude/settings.json(ANTHROPIC_BASE_URLou adresse d'API inconnue). - Gardez la validation et le sandbox activés. N'utilisez pas les drapeaux qui contournent la validation sur une machine contenant des données réelles ; méfiez-vous de toute consigne demandant de les désactiver.
- Si vous trouvez un fichier suspect, considérez que le jeton a fuité : déconnectez-vous, régénérez le jeton, changez les clés d'API concernées, puis relisez les commits récents.
- Pour les équipes techniques : ajoutez l'analyse de la configuration des agents à la vérification mensuelle des postes et inscrivez la règle « pas d'agent dans Téléchargements » dans la documentation interne.
Calendrier et points encore non publiés
- 22/10/2026 : Forever publie son étude. 05–06/10/2026 : Checkmarx et des sites spécialisés dévoilent la campagne MALFEX, composée de 8 paquets npm malveillants.
- Pas encore de réaction officielle d'OpenAI ni d'Anthropic ; surveillez les notes de version de Codex et de Claude Code concernant le traitement des fichiers d'instructions dans les dossiers non fiables.
- On ignore encore quels navigateurs autorisent le téléchargement automatique de fichiers
.mdsans confirmation, et si leurs éditeurs vont modifier ce comportement. - Aucun test indépendant n'a encore été mené sur d'autres agents (Cursor, Gemini CLI, Copilot). Leur mécanisme de lecture des fichiers d'instructions étant similaire, le risque ne se limite probablement pas aux deux produits testés.
À lire aussi : pourquoi deux agents IA d'OpenAI ont désactivé leur propre surveillance interne et les 12 pratiques de gouvernance des agents IA du FSB.
Les 10 risques OWASP et une checklist de 90 jours pour les entreprises figurent dans notre panorama pour déployer des agents IA en sécurité.
Sources vérifiées : Forever Security – Markdown Is the New Executable, The Hacker News, Checkmarx – campagne MALFEX, eSecurity Planet.
