TL;DR : Cet article porte sur l'outil terminal Claude Code (paquet npm @anthropic-ai/claude-code) — pas sur le chat web Claude. Selon les rapports de reverse engineering, lorsque ANTHROPIC_BASE_URL est défini sur autre chose que api.anthropic.com, le client modifie la ligne Today's date is … du prompt système avec des ajustements Unicode et de format de date invisibles à l'œil nu ; vraisemblablement pour l'anti-distillation et la détection de routage non officiel. La logique a été supprimée en 2.1.197 (2026-07-01), sans mention dans le changelog officiel. Pour les développeurs et tech leads utilisant Claude Code, Cursor ou Copilot comme agents desktop/terminal : nous séparons deux controverses indépendantes de 2026 (avril Desktop Native Messaging vs juin stéganographie), fournissons un tableau des principes, un runbook de protection en six étapes, des principes de confiance et une FAQ. Si vous évaluez les assistants de codage IA 2026, lisez ceci comme complément sur les frontières de confiance des agents terminal.
00Crise de confiance Anthropic 2026 : deux événements — ne pas les confondre
Au premier semestre 2026, Anthropic a enchaîné les controverses confidentialité/sécurité sur deux lignes de produits : client desktop et agent de codage terminal. La communauté regroupe souvent les deux sous « spyware Claude », mais mécanismes, surface d'impact et remédiation diffèrent fondamentalement. Le tableau ci-dessous distingue événement A et événement B ; runbooks et communications internes doivent les traiter séparément.
| Dimension | Événement A : Claude Desktop Native Messaging (avril 2026) | Événement B : stéganographie prompt système Claude Code (30 juin 2026) |
|---|---|---|
| Produit | Client macOS Claude Desktop (Claude.app) | CLI Claude Code (@anthropic-ai/claude-code) |
| Première divulgation | Consultant vie privée Alexander Hanff (avril 2026) ; Antiy Labs publie une analyse de risque | Développeur Thereallo (thereallo.dev) ; utilisateur Reddit LegitMichel777 ; Hacker News |
| Comportement | Écriture silencieuse du manifest Native Messaging Chromium à l'installation ; pré-autorisation extension navigateur ↔ binaire local, même sans navigateur installé | Si ANTHROPIC_BASE_URL non par défaut, insertion d'apostrophes Unicode et séparateurs de date liés au fuseau dans Today's date is … |
| Déclencheur | Installation/démarrage Claude Desktop | Uniquement routage API via base URL personnalisée (proxy, passerelle, revente API) |
| Confirmation tierce | Noah Kenney (Digital 520) confirme indépendamment la découverte de Hanff | The Register, TechTimes, etc. ; employé Anthropic Thariq Shihipar répond sur X |
| Communauté | Débat vie privée et ePrivacy ; Malwarebytes, gHacks | Hacker News 350+ points, 100+ commentaires ; clivage « anti-distillation légitime » vs « marquage dissimulé inacceptable » |
| État correctif | Versions ultérieures ajouteraient un opt-in ; surface d'attaque encore discutée | 2.1.197 (2026-07-01) merge la PR de suppression ; changelog muet |
En parallèle de la crise de confiance Gemini CLI et de Anthropic AI for Science, l'événement B illustre le compromis du fabricant entre anti-distillation de modèle et transparence des outils développeur. Selon Anthropic, l'expérience visait à bloquer la revente non autorisée et la distillation — mais la marque stéganographique et la suppression non documentée amplifient la perte de confiance.
DouleurPourquoi « une apostrophe » inquiète les développeurs
Claude Code est un agent terminal à privilèges élevés sur votre machine ou en CI : lit les dépôts, appelle des outils, se connecte via MCP à des systèmes externes. Les développeurs s'attendent à ce que le prompt système envoyé au modèle corresponde à l'UI et que les variables d'environnement ne modifient que le routage, pas le contenu du prompt en secret. Selon le reverse engineering, l'événement B brise cette attente :
- Canal dissimulé : l'empreinte n'est pas dans un champ télémétrie séparé, mais dans la ligne de date présente à chaque requête — quasi invisible à l'œil et aux outils de diff.
- Déclenchement conditionnel : connexion directe à
api.anthropic.com: selon les rapports, pas concernée ; passerelles SiliconFlow, DeepSeek, reverse proxy entreprise et autresANTHROPIC_BASE_URLpersonnalisées activent la logique — fort recouvrement avec l'écosystème proxy API. - Obfuscation de listes : listes de domaines en base64 + XOR(91) ; environ 147 règles avec mots-clés
deepseek,moonshot,zhipuet nombreux domaines passerelle. - Dérive de versions : logique présente depuis 2.1.91 (début avril 2026) ; encore reproductible en 2.1.193 / 2.1.195 / 2.1.196 ; retirée seulement en 2.1.197.
- Lacune de divulgation : commit de suppression mergé, notes de version sans mention — audits conformité et SBOM ne peuvent pas clore sur le changelog seul.
Sur Hacker News, une faction estime la protection anti-distillation légitime ; l'autre juge la stéganographie dans un outil développeur payant sans information utilisateur incompatible avec le récit « Ask for trust ». Ce clivage montre l'absence d'un modèle de confiance standardisé pour les agents terminal.
01Principe de stéganographie : comment la ligne Today's date encode l'empreinte
Selon thereallo.dev et les articles de Vincent Schmalbach, le pipeline se résume en quatre étapes : (1) lire process.env.ANTHROPIC_BASE_URL ; (2) si vide ou API officielle, ligne de date normale ; (3) sinon parser le hostname et comparer à la table domaines/mots-clés décodée XOR ; (4) choisir l'apostrophe Unicode et, selon le fuseau système, remplacer - par / dans la date.
| Condition (selon reverse engineering) | Apostrophe dans Today's | Unicode | Exemple de date |
|---|---|---|---|
| Base URL non par défaut, host hors liste, sans mot-clé lab | Apostrophe ASCII droite | U+0027 ' | 2026-06-30 (hors fuseau Chine) |
| Host correspond à domaine passerelle/revente connu | Apostrophe typographique droite | U+2019 ' | idem |
| Host hors liste mais mot-clé lab IA | Apostrophe modificative | U+02BC ʼ | idem |
| Liste domaines et mot-clé simultanément | Prime modificative | U+02B9 ʹ | idem |
Fuseau Asia/Shanghai ou Asia/Urumqi | (combiné avec tableau ci-dessus) | — | 2026/06/30 (- devient /) |
Tables domaines et mots-clés stockées en base64 puis XOR(91) dans le binaire — environ 147 règles incluant deepseek, moonshot, zhipu, siliconflow et de nombreux domaines proxy. Si le serveur Anthropic normalise ou conserve l'Unicode original avant stockage, la même ligne anglaise révèle usage proxy, routage écosystème IA chinois, fuseau Chine — selon les fuites pour anti-distillation et revente non autorisée, pas un verdict communautaire d'« espionnage actif ».
function renderDateLine(date) {
if (!customBaseUrl()) return `Today's date is ${date}.`;
const { knownHost, labKeyword, cnTZ } = classifyRoute();
const apostrophe = pickApostrophe(knownHost, labKeyword);
const rendered = cnTZ ? date.replaceAll("-", "/") : date;
return `Today${apostrophe}s date is ${rendered}.`;
}
- Donnée citable 1 : logique stéganographique présente depuis Claude Code 2.1.91 ; encore détectable en 2.1.196 à la divulgation.
- Donnée citable 2 : table domaines/mots-clés obfusquée : environ 147 entrées, cachées via XOR(91) et base64.
- Donnée citable 3 : fil Hacker News 350+ points, 100+ commentaires — communauté divisée entre « anti-distillation OK » et « outils dev ne doivent pas marquer en secret ».
02Chronologie des versions et motivation : rumeurs vs réponse officielle
| Version / date | Selon infos publiques et reverse engineering |
|---|---|
| 2.1.91 (vers 2026-04-02) | LegitMichel777 sur Reddit signale la logique dans cette version |
| 2.1.193 / 2.1.195 / 2.1.196 | Communauté reproduit la branche stéganographie dans le paquet npm et chunks embarqués |
| 2026-06-30 | Thereallo publie l'article de reverse engineering ; HN/Reddit enflamment |
| 2.1.197 (2026-07-01) | PR de suppression mergée ; changelog officiel muet |
L'employé Anthropic Thariq Shihipar a déclaré sur X qu'il s'agissait, selon sa version, d'une expérience lancée en mars contre revente non autorisée et distillation, avec rollback prévu. The Register et d'autres rapportent qu'Anthropic a reconnu le code et promis un correctif. Ce sont des déclarations publiques ; si le serveur consomme réellement ces marques ou affecte le risque compte, Anthropic n'a pas détaillé — cet article n'affirme pas de conséquences non divulguées comme faits.
Parallèlement, une fuite de source a exposé des mécanismes comme ANTI_DISTILLATION_CC (injection de données tool perturbatrices). La stéganographie appartiendrait à la même boîte à outils « protection modèle » — mais la modification secrète du prompt système nuit davantage à la confiance développeur que des champs API documentés.
03Est-ce du « spyware » ? Comment qualifier les deux événements
Événement A : préconfiguration locale non autorisée
Hanff et Antiy Labs accusent : Claude Desktop écrit sans informer dans les chemins Chrome, Edge, Brave, Arc, Vivaldi, Opera le fichier com.anthropic.claude_browser_extension.json, pré-autorise ID extension et helper local ; après suppression, l'app peut le recréer automatiquement. Noah Kenney confirme indépendamment : pont persistant « extension navigateur → binaire hors sandbox ».
Chaîne de risque : la documentation Anthropic cite pour Claude for Chrome des risques d'injection de prompt — sans atténuation ~23,6 % de succès, avec atténuation encore ~11,2 %. Extension installée et manifest préconfiguré : selon analyses sécurité, une injection sur page malveillante pourrait théoriquement atteindre capacités locales au niveau utilisateur via extension et Native Messaging — altération locale non autorisée plus surface d'injection connue à fort taux, pas un profil trojan classique, mais forte controverse conformité et ePrivacy.
Événement B : télémétrie non divulguée dans la couche prompt
L'événement B ne modifie pas les fichiers locaux, mais intègre des signaux de classification dans le prompt système invisible pour l'utilisateur — sans opt-in séparé. Selon le reverse engineering, c'est un canal télémétrie/classification non documenté, hostile à la transparence et à la minimisation des données. Qualifier juridiquement de « spyware » dépend de la juridiction et du contrat ; formulation technique plus précise : marquage de classification dissimulé dans outils développeur, changelog muet à la suppression.
Discipline de formulation : les motivations Anthropic sont citées « selon les rapports », « selon le reverse engineering », « selon leurs déclarations publiques » ; usage serveur ou sanctions compte non divulgués ne sont pas affirmés comme faits. Les audits entreprise doivent couvrir séparément événement A (chemins manifest) et événement B (base URL / version).
04Runbook de protection en six étapes (Claude Code + Desktop)
-
01
Vérifier
ANTHROPIC_BASE_URL: lister toutes les instances Claude Code dans le shell,~/.claude/settings.jsonet coffres secrets CI. URL pointant vers API non officielle : selon reverse engineering, la branche stéganographie s'activait ; documenter les passerelles entreprise et obtenir approbation sécurité. -
02
Mettre à jour Claude Code ≥ 2.1.197 : exécuter
claude --versionounpm ls -g @anthropic-ai/claude-code. Versions inférieures à 2.1.197 contenaient encore la logique ; après upgrade, le changelog reste muet — vérifier le binaire ou verrouiller la version. -
03
Auditer Native Messaging Claude Desktop : sous macOS, chercher
com.anthropic.claude_browser_extension.jsondans~/Library/Application Support/Google/Chrome/NativeMessagingHosts/et chemins équivalents Edge, Brave, Arc. Si automatisation navigateur inutile : supprimer le manifest et noter si Desktop le recrée. -
04
Contrôler le fuseau système : événement B basculerait le séparateur de date sous
Asia/ShanghaietAsia/Urumqi. CI et dev box cloud sur fuseau attendu ; fixerTZ=UTCdans la doc si nécessaire. -
05
Moindre privilège entreprise : restreindre qui installe Desktop, configure base URL et clés API ; approbation pour MCP et extensions navigateur ; isoler Claude Code des secrets production.
-
06
Isoler et auditer l'environnement dev : exécuter les agents sur Mac séparé ou nœud cloud bare metal dédié, distinct du navigateur quotidien et de l'Apple ID personnel ; auditer périodiquement des échantillons de prompt système sortants (lab MITM) ou s'appuyer sur SBOM fabricant. Pour hôtes Mac CI/agent stables et réinitialisables : tarifs NUKCLOUD et page commander pour nœuds exclusifs.
05Confiance éditeurs IA : quatre principes d'achat actionnables
Les agents terminal lisent le code, appellent des outils et détiennent des clés API. La stéganographie Claude Code et la controverse manifest Desktop en 2026 montrent : documentation fabricant ≠ comportement runtime. Équipes achats et plateforme peuvent adopter ces quatre principes (Anthropic, Google, OpenAI, Cursor, etc.) :
- Comportement observable : injections prompt système, logique déclenchée par variables d'environnement et écritures locales doivent être documentées ou traçables via SBOM ; changelogs couvrant suppressions liées à la sécurité.
- Minimisation des données : classification et anti-abus via champs API explicites ou télémétrie opt-in — pas de canaux stéganographiques.
- Consentement pour changements locaux : Native Messaging, extensions navigateur, LaunchAgents préinstallés = violation, sauf autorisation explicite au premier usage.
- Chaîne d'approvisionnement vérifiable : verrouiller versions, vérifier hash npm, diff en environnement isolé ; séparer hôte agent du réseau production pour rebuild rapide.
Les risques de confiance des agents desktop et Claude Code ne sont souvent pas la qualité des réponses, mais les effets locaux non revus et les payloads sortants invisibles. Sur portable partagé ou VPS sursouscrit avec agent 7×24, s'ajoutent interférences voisins et coupures longues connexions. Pour des hôtes auditables, accessibles SSH, avec Xcode et Claude Code, les nœuds Mac bare metal multi-régions / Mac cloud NUKCLOUD séparent l'environnement agent de la machine quotidienne — matériel exclusif, root, facturation jour/mois flexible, surface d'exposition réduite. Consultez d'abord les tarifs, testez un environnement dev isolé sur commander ; détails dans l'aide et la console.
06Questions fréquentes
com.anthropic.claude_browser_extension.json dans les dossiers NativeMessagingHosts des navigateurs Chromium et vérifier si Claude Desktop recrée le fichier au redémarrage. Selon Hanff, l'app peut le restaurer ; désactiver l'intégration navigateur, choisir une version sans ce comportement, surveiller les changements de répertoire.- → / ne s'applique que si ANTHROPIC_BASE_URL non officiel et fuseau Asia/Shanghai ou Asia/Urumqi. Connexion directe API officielle : le chemin ne serait pas activé selon les rapports.Today's, remplacer l'apostrophe ASCII U+0027 par des caractères visuellement quasi identiques U+2019, U+02BC, U+02B9 pour encoder des combinaisons « liste domaines / mot-clé lab IA ». Lecture humaine identique ; logs ou serveur sensibles Unicode peuvent décoder.ANTHROPIC_BASE_URL personnalisé : revérifier variables et images CI après upgrade ; équipes conformité garder traces d'upgrade et verrous de version, le changelog étant muet.ANTHROPIC_BASE_URL non officiel et correspondance table ou mots-clés, la ligne date pouvait être modifiée — avant 2.1.197. Après upgrade, logique retirée ; suivre autres mécanismes anti-distillation (ex. ANTI_DISTILLATION_CC) via mises à jour fabricant et reverse engineering communautaire.07Sources
- The Register — Anthropic retire le code dissimulé de Claude Code
- thereallo.dev — article de reverse engineering sur la stéganographie du prompt système
- Antiy Labs — analyse de risque Native Messaging Claude Desktop
- Alexander Hanff — divulgation originale de l'installation silencieuse du manifest (That Privacy Guy, etc.)
- Hacker News — discussion fin juin 2026 (ordre de grandeur 350+ points, 100+ commentaires)
- Reddit — LegitMichel777 et autres sur comportement dès 2.1.91
- Vincent Schmalbach, TechTimes, etc. — suivi technique
ANTHROPIC_BASE_URLet marquage Unicode
Les agents terminal deviennent des « stagiaires avec root ». L'incident stéganographie Claude Code rappelle : en comparant Cursor vs Claude Code vs Copilot, au-delà du SWE-bench et des tarifs, demandez — modifie-t-il en secret le prompt que vous envoyez au modèle ? Exécuter l'agent sur un Mac isolé et rebuildable est un choix pragmatique en 2026.