TBN Grow

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

Image de couverture illustrant la sécurité des agents IA de code : un fichier AGENTS.md malveillant dans le dossier Téléchargements a poussé Codex à installer un paquet npm malveillant dans plus de 90 % des essais de Forever Security.
Image de couverture illustrant la sécurité des agents IA de code : un fichier AGENTS.md malveillant dans le dossier Téléchargements a poussé Codex à installer un paquet npm malveillant dans plus de 90 % des essais de Forever Security.

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 lit CLAUDE.md dans 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 paquet function-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.md se faisant passer pour un guide de configuration d'une « passerelle interne », Claude a écrit dans .claude/settings.json une variable ANTHROPIC_BASE_URL pointant 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ètreValeurRemarque
Date de publication de l'étude22/10/2026Forever Security (Gal Weizman, Omer Samet)
Paquet npm malveillantfunction-color → entraîne function-flagCampagne MALFEX selon Checkmarx ; cible uniquement Windows
Codex suit le fichier malveillantPlus de 90 % des essaisSelon Forever ; nombre d'essais et version non précisés
Claude Code écrit la configuration malveillanteEnviron 50 % des essaisSelon Forever ; refus systématique quand le dossier contient des notes de sécurité
Claude Code exécute une commande dans la même sessionEnviron 1 essai sur 5Lorsque Claude lance un sous-agent, selon Forever
Clients exécutant un agent dans TéléchargementsEnviron la moitiéMesure sur les clients de Forever, selon l'éditeur
Sessions d'agent ouvrant un vrai navigateurEnviron 1 sur 4Selon Forever
Téléchargements cumulés des 8 paquets MALFEX40 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'attaqueCe que l'utilisateur doit faireProtections existantesNiveau de blocage
Fichier .exe/.app malveillantOuvrir le fichier, valider l'alerteSmartScreen, Gatekeeper, antivirusÉlevé : le système bloque les fichiers non signés
Paquet npm au nom trompeur (typosquatting)Se tromper de nom à l'installationAlertes npm, scanners de dépendancesMoyen : function-flag n'avait pas d'avis de sécurité officiel (selon Checkmarx)
Injection de prompt via README/issueDemander à l'agent de lire un contenu externeL'agent peut se méfier d'un contenu inconnuMoyen
AGENTS.md/CLAUDE.md dans TéléchargementsSimplement lancer l'agent dans ce dossierBoîte de dialogue de confiance, validation des commandesFaible 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 .md inconnus 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.

PosteHypothèseEstimation
Vérification périodique de la configuration des agents10 min/personne/mois × 20 personnesEnviron 3,3 heures-personne/mois
Script d'analyse de config.toml et settings.json1 ingénieur, une seule foisEnviron 4 heures-personne
Traitement d'une machine infectéeIsoler, réinstaller, renouveler tous les jetons, auditer les dépôts1 à 3 jours-personne pour 1 à 2 personnes
Revue du code poussé depuis la machine infectéeRelire les commits de la période d'infectionSelon 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.toml et cherchez un bloc [mcp_servers.*] inconnu ou une valeur chatgpt_base_url modifiée ; cherchez dans chaque .claude/settings.json une ligne ANTHROPIC_BASE_URL que vous n'avez pas définie ; vérifiez la présence de function-color ou function-flag dans node_modules et 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_URL ou 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 .md sans 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.

Publication:

Source vérifiée:

Source originale: Forever Security — 22/10/2026