Un fichier de débogage oublié dans un paquet npm a suffi à exposer 512 000 lignes de TypeScript au monde entier. L'incident, survenu le 31 mars 2026, révèle bien plus qu'une négligence de pipeline : il donne à voir, pour la première fois, l'architecture interne d'un agent de codage IA en production, ses fonctionnalités secrètes, ses mécanismes de protection et ses contradictions embarrassantes. Décryptage.Tout commence par un tweet de Chaofan Shou, chercheur en sécurité chez Fuzzland, le matin du 31 mars 2026. En téléchargeant la version 2.1.88 du paquet @anthropic-ai/claude-code depuis le registre npm, il remarque quelque chose d'inhabituel : un fichier .map de 59,8 mégaoctets joint au binaire de production. Ces fichiers de cartographie de code source sont des outils de débogage qui font le lien entre le code minifié de production et le source original lisible ModemGuides... ils n'ont absolument rien à faire dans un paquet destiné au public.
512 000 lignes de code. 1 906 fichiers TypeScript. 44 drapeaux de fonctionnalités cachées. Un animal de compagnie virtuel façon Tamagotchi. Et une question qui a traversé toute la communauté technique : comment Anthropic, une entreprise valorisée à plusieurs dizaines de milliards de dollars et qui construit l'un des outils d'IA les plus utilisés au monde, a-t-elle pu laisser passer ça ?
La réponse technique est triviale : Claude Code est construit sur Bun, que Anthropic a acquis fin 2025. Bun génère des source maps par défaut. Quelqu'un dans l'équipe de release n'a pas ajouté *.map au fichier .npmignore, ni configuré le champ files dans package.json pour exclure les artefacts de débogage. Autrement dit, une seule ligne de configuration manquante a suffi à exposer l'intégralité des entrailles du produit phare d'Anthropic.
L'entreprise a confirmé l'incident le 31 mars 2026, attribuant la fuite à une erreur humaine dans le processus d'empaquetage de la version. En quelques heures, des dizaines de miroirs ont fleuri sur GitHub, certains accumulant des dizaines de milliers d'étoiles avant que les premières demandes de retrait pour violation de copyright ne tombent.
L'anti-distillation : empoisonner les concurrents
Parmi les premières découvertes qui ont fait réagir la communauté Hacker News, on trouve un mécanisme baptisé ANTI_DISTILLATION_CC. Quand ce drapeau est activé, Claude Code envoie anti_distillation: ['fake_tools'] dans ses requêtes API. Cela indique au serveur d'injecter silencieusement de fausses définitions d'outils dans le prompt système. L'idée : si quelqu'un enregistre le trafic API de Claude Code pour entraîner un modèle concurrent, les faux outils viennent polluer ces données d'entraînement.
Ce mécanisme est conditionné à quatre critères simultanés : un drapeau de compilation, l'utilisation du point d'entrée CLI, un fournisseur d'API propriétaire Anthropic, et l'activation d'un drapeau GrowthBook côté serveur. Un proxy MITM qui supprimerait simplement le champ anti_distillation des corps de requêtes avant qu'ils atteignent l'API le contournerait entièrement. N'importe qui de sérieux dans l'intention de distiller les données de Claude Code trouverait les contournements en une heure de lecture du code source. La protection est donc plus symbolique que technique et ses vrais effets dissuasifs sont probablement d'ordre juridique.
Un second mécanisme, cette fois réservé aux employés Anthropic, permet de ne renvoyer au client que des résumés des raisonnements intermédiaires, accompagnés de signatures cryptographiques permettant de les reconstruire côté serveur. Là encore, seule une organisation particulièrement motivée et dotée de ressources importantes pourrait en tirer profit.
« L'undercover mode » : Claude se fait passer pour un humain
C'est sans doute la découverte la plus commentée, et la plus inconfortable. Le fichier undercover.ts, une centaine de lignes, implémente un mode qui entre en action lorsque des employés Anthropic utilisent Claude Code sur des dépôts publics ou open source. Le prompt injecté est explicite : « Vous opérez EN COUVERTURE dans un dépôt PUBLIC/OPEN-SOURCE. Vos messages de commit, titres de PR et descriptions de PR NE DOIVENT CONTENIR AUCUNE information interne à Anthropic. Ne révélez pas votre couverture. »
La liste des choses à ne jamais mentionner est éloquente : les noms de code internes des modèles (noms d'animaux comme Capybara, Tengu, etc.), les numéros de versions non publiées, les noms de dépôts ou projets internes, les outils internes, les canaux Slack, la phrase « Claude Code » ou toute mention que l'auteur est une IA, et les lignes Co-Authored-By ou toute autre attribution.
Il existe une option pour forcer l...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.
à toutes et tous,

