ANTHROPIC_BASE_URL ≠ api.anthropic.com), l'outil réécrit discrètement la ligne Today's date is... du system prompt. En alternant des apostrophes Unicode visuellement identiques et des séparateurs de date, il encode le fuseau horaire chinois et les correspondances domaine/laboratoire — un canal dissimulé classique. Anthropic a retiré le code en 2.1.197. Ce guide s'adresse aux développeurs et responsables conformité : ① incident A (injection navigateur Desktop) vs B (stéganographie Code) ; ② table de mapping Unicode complète ; ③ motif anti-distillation et débat HN ; ④ runbook de protection en six étapes ; ⑤ données vérifiables et position sur les limites de confiance des éditeurs IA.
Que s'est-il passé ? Deux incidents Claude à ne pas confondre
En bref : l'affaire repose sur deux histoires distinctes. Incident A (avril 2026) : Claude Desktop écrit silencieusement des manifestes Native Messaging dans les navigateurs. Incident B (30 juin 2026) : Claude Code dissimule des empreintes Unicode dans les system prompts. Ce dernier ne se déclenche qu'avec une Base URL non officielle — pas à chaque conversation.
Incident A (avril 2026, divulgation Alexander Hanff) : L'installation de Claude Desktop sur macOS aurait, selon les rapports, écrit com.anthropic.claude_browser_extension.json dans les répertoires Chrome, Edge, Brave, Arc, Vivaldi et Opera — pré-autorisant trois ID d'extension à appeler chrome-native-host hors sandbox navigateur. Les répertoires sont créés même sans navigateur installé ; la suppression est annulée au redémarrage. Noah Kenney (Digital 520) a confirmé les affirmations de Hanff ; Antiy Labs a publié une analyse de risque dédiée. Anthropic n'a pas répondu formellement ; des versions ultérieures ont ajouté un interrupteur d'autorisation, mais le modèle de permissions persiste.
Incident B (30 juin 2026, reverse engineering thereallo.dev) : Lorsque ANTHROPIC_BASE_URL ≠ api.anthropic.com, la ligne Today's date is... du system prompt est réécrite via des échanges de séparateur de date et d'apostrophe Unicode. Les versions 2.1.193, 2.1.195 et 2.1.196 contenaient toutes la logique selon le reverse engineer. Fil HN en première page en quelques heures : 350+ points, 100+ commentaires.
Chronologie du correctif : Anthropic a reconnu le code. La version 2.1.197 du 1er juillet 2026 l'a retiré — sans mention dans le changelog.
Étiquettes divergentes : incident A qualifié de « spyware » / « backdoor » ; incident B de « stéganographie de prompt » / « canal dissimulé ».
Formulation conformité : employer « allégué », « selon le rapport de reverse engineering » et « divulgué par » partout. Séparer l'intention (anti-distillation) de la méthode (stéganographie).
| Dimension | Incident A : injection navigateur | Incident B : stéganographie system prompt |
|---|---|---|
| Produit | Claude Desktop (client macOS) | Claude Code (CLI) |
| Source | Alexander Hanff (The Register) | thereallo.dev → Reddit → HN |
| Date | Avril 2026 (~18/04) | 30 juin 2026 |
| Déclencheur | Installation/démarrage Claude Desktop | Uniquement si ANTHROPIC_BASE_URL non officiel |
| Comportement | Manifeste Native Messaging ; extensions pré-autorisées hors sandbox | Réécrit Unicode et format de date dans Today's date |
Comment Claude Code détecte-t-il un proxy Chine ? Table Unicode
Prérequis : ne se déclenche que si ANTHROPIC_BASE_URL pointe ailleurs que api.anthropic.com (proxy, passerelle, revendeur, couche compatible OpenAI). L'endpoint officiel reste intact. Les signaux de classification se cachent dans l'innocente ligne Today's date is ....
| Condition détectée | Format date | Apostrophe dans Today's | Unicode |
|---|---|---|---|
| Défaut (aucune correspondance) | 2026-06-30 | ' apostrophe ASCII | U+0027 |
| Domaine org/revendeur Chine | 2026-06-30 | ' guillemet simple droit | U+2019 |
| Mot-clé laboratoire IA | 2026-06-30 | ʼ apostrophe modificative | U+02BC |
| Domaine et labo | 2026-06-30 | ʹ prime modificative | U+02B9 |
| + fuseau Chine | 2026/06/30 (séparateur /) | (mêmes règles) | — |
Fuseaux Chine : Asia/Shanghai ou Asia/Urumqi. Listes domaine/mots-clés : obfuscation base64 + XOR (clé 91) — environ 147 patterns incluant deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai. Pour un humain le prompt semble ordinaire ; pour le backend d'Anthropic, un code point d'apostrophe révèle : utilisateur VPN, fuseau Chine, possible labo IA chinois. Un canal dissimulé textbook.
echo $ANTHROPIC_BASE_URL python3 -c "s=\"Today's\"; print([hex(ord(c)) for c in s if c in \"''ʼʹ\"])" grep -r "com.anthropic.claude_browser_extension" ~/Library/Application\ Support/*/NativeMessagingHosts/ 2>/dev/null
Conseil : U+0027 et U+2019 paraissent identiques dans la plupart des terminaux. Utilisez un hex dump ou Python ord() pour confirmer le fingerprinting.
Pourquoi Anthropic a-t-il fait cela ? Claude Code est-il un logiciel espion ?
Le consensus communautaire reste mesuré : très probablement anti-distillation et anti-revente non autorisée. Anthropic, OpenAI et Google s'inquiètent publiquement des concurrents qui récoltent les sorties API pour entraîner des modèles plus petits. Revendeurs, proxys et laboratoires liés à la Chine sont les principaux suspects. L'intention se défend ; la méthode, non. Ponctuation invisible, code binaire obfusqué, expédié à chaque requête — dans un outil développeur fondé sur la confiance — franchit une limite.
Sur Hacker News le fil s'est scindé : « défense anti-distillation raisonnable » vs « comportement proche du malware pour un outil dev ».
« Spyware » est un terme chargé. Plus précisément : incident A = altération non autorisée de logiciels tiers plus surface d'attaque pré-positionnée hors sandbox navigateur. Les chiffres d'Anthropic : injection de prompt Claude for Chrome 23,6 % sans atténuation / 11,2 % atténué. Incident B = télémétrie non divulguée / classification utilisateur dissimulée. Quel que soit le label, le cœur du problème : aucun consentement éclairé, délibérément caché.
Comment arrêter le Native Messaging Claude Desktop ? Runbook en six étapes
Vérifier la Base URL : exécuter echo $ANTHROPIC_BASE_URL. Vide ou officielle api.anthropic.com → incident B ne se déclenche pas. Utilisateurs proxy/passerelle dans la cible de classification.
Mettre à jour Claude Code : version ≥ 2.1.197 (1er juillet 2026, stéganographie retirée). Exécuter claude --version.
Auto-contrôle Unicode : inspecter chaque caractère de Today's dans les system prompts capturés. U+0027 normal ; U+2019/U+02BC/U+02B9 = signalé.
Auditer Native Messaging (incident A) : sur macOS vérifier ~/Library/Application Support/<navigateur>/NativeMessagingHosts/com.anthropic.claude_browser_extension.json. Supprimer si besoin ; Claude Desktop peut recréer au redémarrage.
Audit fuseau horaire : vérifier le fuseau système. Base URL non officielle plus Asia/Shanghai ou Asia/Urumqi → séparateur de date passe de - à /.
Renforcement entreprise : évaluer l'usage d'Agent desktop en production. Moindre privilège, autorisation explicite, comportement auditable. Isoler Claude Desktop du Native Messaging navigateur en environnements sensibles.
Données citables : paramètres de l'incident fingerprint Claude Code
Nombre de règles domaine : ~147 patterns, obfuscation base64 + XOR(91) ; mots-clés deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai.
Versions affectées : 2.1.193 / 2.1.195 / 2.1.196 confirmées ; retiré en 2.1.197 (2026-07-01).
Engouement HN : première page en heures — 350+ points, 100+ commentaires. Injection prompt Claude for Chrome : 23,6 % sans atténuation / 11,2 % atténué (données Anthropic, contexte incident A).
Attention : la leçon n'est pas « une apostrophe ». Quand les capacités des modèles accélèrent tandis que les frontières de sécurité et l'auditabilité retardent, les éditeurs franchissent les lignes de confiance au nom de l'UX ou de la prévention des abus. Par défaut : méfiance ; exiger la transparence ; moindre privilège.
Les équipes utilisant Claude Code pour CI/CD iOS et automatisation Agent IA sur Mac locaux font face à une prolifération de permissions et au risque de télémétrie dissimulée ; l'isolation VM partagée reste inférieure au bare metal dédié. Pour un environnement Apple Silicon stable, auditable et 24/7, la location Mac Mini cloud MESHLAUNCH est généralement le meilleur choix : M4/M4 Pro dédiés, facturation jour/semaine/mois, isolation physique des canaux locaux à haut privilège de Claude Desktop.
Sources : The Register (permissions Claude Desktop, 2026-04) ; Malwarebytes / gHacks / YOOTA ; thereallo.dev (reverse engineering original) ; Tech Startups / TMC Insight / Developers Digest / TechTimes (correctif 2.1.197) ; analyse de risque Antiy Labs.
Pas au sens classique, mais selon le rapport de reverse engineering il intégrait une empreinte non divulguée et obfusquée pour signaler les utilisateurs de proxys liés à la Chine. Retiré en 2.1.197. Plus précisément : canal dissimulé non déclaré.
Il vérifiait Asia/Shanghai et Asia/Urumqi uniquement avec un ANTHROPIC_BASE_URL non par défaut. Les utilisateurs de l'endpoint officiel n'étaient pas concernés.
L'apostrophe de Today's alternait entre U+0027, U+2019, U+02BC, U+02B9 pour encoder correspondances domaine, mots-clés labo, les deux ou aucun. Voir la table ci-dessus.
Non. L'injection Native Messaging de Claude Desktop en avril 2026 est l'incident A. La stéganographie Claude Code du 30 juin est l'incident B — produits et déclencheurs distincts.
Très probablement détection anti-distillation et revente non autorisée. La controverse porte sur la méthode dissimulée. Options de déploiement isolé sur la page tarifs.
L'incident B ne se déclenche que dans Claude Code avec ANTHROPIC_BASE_URL non officiel. Les utilisateurs web sur l'endpoint officiel ne sont pas affectés.
Supprimez com.anthropic.claude_browser_extension.json sous ~/Library/Application Support/<navigateur>/NativeMessagingHosts/. Claude Desktop peut le recréer. Consultez le centre d'aide.
Anthropic a reconnu et retiré le code en 2.1.197 le 1er juillet 2026. Le changelog ne mentionnait pas le changement. Mettez à jour immédiatement et vérifiez votre version.