Fin juin 2026, un développeur en reverse engineering de Claude Code (pas l'application web Claude) a constaté que lorsqu'on le route via un proxy personnalisé (ANTHROPIC_BASE_URLapi.anthropic.com), la ligne Today's date is... du prompt système est silencieusement réécrite. En changeant le séparateur de date et en substituant l'apostrophe par des caractères Unicode visuellement identiques mais distincts, le système encode si vous êtes dans un fuseau horaire chinois et si votre endpoint correspond à des domaines liés à la Chine ou à des mots-clés de labos IA. Anthropic a retiré le code en version 2.1.197. Cet article sépare strictement l'incident A (injection silencieuse navigateur par Claude Desktop) de l'incident B (stéganographie de prompt Claude Code), couvre la table de mapping Unicode, le motif anti-distillation, le débat HN, six étapes de protection et la réponse aux dépassements des fournisseurs IA. Voir aussi notre comparatif des assistants de code IA et le guide du protocole MCP.
01

Que s'est-il passé avec la stéganographie Claude Code ? Deux incidents à ne pas confondre

En résumé : cette controverse repose en réalité sur deux histoires distinctes superposées. Les confondre vous exposera immédiatement aux lecteurs techniques anglophones sur HN, Reddit et dans les cercles sécurité — et nuit à l'E-E-A-T. Gardez-les toujours séparés :

DimensionIncident A : injection silencieuse navigateurIncident B : stéganographie de prompt système
ProduitClaude Desktop (client macOS)Claude Code (outil CLI de codage)
RévélateurAlexander Hanff (consultant privacy, contributeur The Register)Développeur a reverse-engineeré le binaire, publié sur thereallo.dev, amplifié via Reddit → Hacker News
ChronologieAvril 2026 (vers le 18/04)30 juin 2026
Comportement centralÉcrit silencieusement le manifeste Native Messaging com.anthropic.claude_browser_extension.json dans Chrome/Edge/Brave/Arc/Vivaldi/Opera/Chromium, pré-autorisant 3 ID d'extension à appeler chrome-native-host hors sandbox ; crée des répertoires même pour navigateurs non installés ; le fichier se régénère après suppression au redémarrageQuand ANTHROPIC_BASE_URL ≠ api.anthropic.com (proxy/passerelle), réécrit la ligne Today's date is... par stéganographie
Étiquettes« spyware » / « backdoor »« prompt steganography » / « covert channel »
DéclencheurInstallation/lancement de Claude DesktopUniquement avec Base URL non officielle ; pas chaque conversation
Réponse AnthropicPas de réponse publique formelle ; versions ultérieures avec toggle d'autorisation, mais modèle de permission sous-jacent non entièrement retiré selon analysesExistence du code reconnue ; retrait en 2.1.197 le 01/07, non mentionné dans le changelog

Incident A (selon la divulgation de Hanff et reproduction indépendante) : Après installation de Claude Desktop, il écrit silencieusement une config Native Messaging dans plusieurs répertoires navigateur, pré-autorisant des extensions à appeler un binaire local hors sandbox navigateur avec privilèges utilisateur complets. Il crée même des répertoires pour navigateurs non installés. Suppression manuelle — Claude Desktop recrée au redémarrage. Le consultant indépendant Noah Kenney (Digital 520) a confirmé la reproductibilité ; Antiy Labs a publié une analyse de risque dédiée.

Incident B (selon le reverse engineering thereallo.dev) : Un développeur a trouvé de la stéganographie de prompt dans Claude Code — le focus de cet article. Le fil HN a atteint la page d'accueil en quelques heures : 350+ points, 100+ commentaires, communauté divisée entre « défense anti-distillation raisonnable » et « comportement proche du malware pour un outil dev ».

01

Confondre deux produits : l'injection navigateur Claude Desktop et la stéganographie de prompt Claude Code sont des mécanismes totalement différents avec des déclencheurs distincts.

02

Supposer que les endpoints officiels sont touchés : l'incident B ne se déclenche que si ANTHROPIC_BASE_URL pointe ailleurs que api.anthropic.com.

03

Traiter l'intention comme fait prouvé : l'anti-distillation est le consensus communautaire, mais Anthropic ne l'a pas confirmé publiquement. Utiliser « présumé », « selon le reverse engineering », « rapporté ».

04

Ignorer la persistance de l'incident A : les manifestes Native Messaging se régénèrent après suppression au redémarrage de Claude Desktop — surveillance continue requise.

05

Sous-estimer les privilèges des agents desktop : les chiffres d'Anthropic : succès d'injection de prompt Claude for Chrome à 23,6 % (non atténué) / 11,2 % (atténué) — risque réel combiné aux canaux à haut privilège.

02

Comment fonctionne l'empreinte Claude Code ? Mapping des apostrophes Unicode expliqué

Précondition : cela ne se déclenche que si ANTHROPIC_BASE_URL pointe ailleurs que l'endpoint officiel (proxy, passerelle, revendeur, couche compatible OpenAI). Avec api.anthropic.com, rien n'est altéré.

Lors du déclenchement, deux signaux se cachent dans l'innocente ligne Today's date is ... :

Condition détectéeFormat de dateApostropheUnicode
Défaut (aucune correspondance)2026-06-30' apostrophe ASCIIU+0027
Domaine org/revendeur lié à la Chine2026-06-30' guillemet simple droitU+2019
Mot-clé labo IA (deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai…)2026-06-30ʼ apostrophe lettre modificativeU+02BC
Domaine et labo tous deux correspondants2026-06-30ʹ prime lettre modificativeU+02B9
+ fuseau horaire Chine (Asia/Shanghai / Asia/Urumqi)2026/06/30(mêmes règles ci-dessus)

Les listes de domaines et mots-clés sont légèrement obfusquées avec base64 + XOR (clé 91) — environ 147 motifs de domaine. Les mots-clés incluent deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai et d'autres. Le reverse engineer a vérifié les versions 2.1.193 / 2.1.195 / 2.1.196 avec la logique.

bash
echo $ANTHROPIC_BASE_URL
timedatectl | grep "Time zone"
find ~/Library/Application\ Support -name "com.anthropic.claude_browser_extension.json" 2>/dev/null

Pour un humain, le prompt paraît tout à fait ordinaire. Le backend d'Anthropic lit en un scan de codepoint Unicode d'une apostrophe : « Cet utilisateur est derrière un VPN mais est en réalité dans un fuseau horaire chinois — possiblement un labo IA chinois. » Un canal dissimulé classique.

Les détails fuseau horaire et apostrophe Unicode sont entièrement vérifiés, issus du rapport thereallo.dev et cohérents avec la discussion communautaire publique.

03

Pourquoi Anthropic a fait cela ? Claude Code est-il vraiment un spyware ?

Le consensus mesuré de la communauté : c'était presque certainement de l'anti-distillation et anti-revente non autorisée. Anthropic, OpenAI et Google se sont tous inquiétés publiquement des concurrents récoltant les sorties API pour entraîner des modèles plus petits. Revendeurs, proxys et labos liés à la Chine sont les principaux suspects — d'où le classificateur.

L'intention est défendable ; la méthode ne l'est pas. Transformer un signal de classification en ponctuation invisible, l'obfusquer dans le binaire et l'expédier à chaque requête — dans un outil développeur qui vit de la confiance — franchit une ligne. Sur Hacker News, le fil s'est scindé nettement :

CampPosition
Camp anti-distillation« Défense anti-distillation raisonnable » — protéger le modèle de la récolte de sorties concurrentes
Camp confiance développeur« Proche du malware pour un outil dev » — non divulgué, obfusqué, enfoui dans la ponctuation est inacceptable

« Spyware » est un mot chargé. Plus précisément :

A

Incident A se rapproche d'une altération non autorisée de logiciels tiers plus une surface d'attaque dormante pré-positionnée — même non exploitée, il pré-installe un canal à haut privilège hors sandbox navigateur.

B

Incident B se rapproche de télémétrie non divulguée / classification utilisateur dissimulée — pas un malware classique de vol de données, mais sans consentement éclairé.

Quel que soit le label, le cœur du problème est identique : pas de consentement éclairé, délibérément caché. La lecture dominante : Anthropic visait à détecter la revente non autorisée et la distillation de modèle, pas à surveiller des individus ; la controverse porte sur la méthode (dissimulée, obfusquée, non divulguée), pas l'objectif.

Note de conformité : utiliser « présumé », « selon le reverse engineering » et « rapporté » partout. Ne pas présenter l'intention comme fait prouvé. Évaluer séparément l'objectif (anti-distillation) et la méthode (stéganographie).

04

Vérification et protection : guide en six étapes pour les utilisateurs Claude Code

Que vous routiez Claude Code via un proxy ou exécutiez Claude Desktop sur macOS, ces étapes sont reproductibles et auditables :

01

Vérifier ANTHROPIC_BASE_URL : exécuter echo $ANTHROPIC_BASE_URL. Vide ou pointant vers api.anthropic.com — l'incident B ne se déclenche pas. Passerelles/revendeurs tiers sont concernés.

02

Mettre à jour Claude Code : version CLI ≥ 2.1.197 (1er juillet 2026, stéganographie retirée). claude --version pour vérifier.

03

Vérifier l'environnement fuseau horaire : timedatectl ou date +%Z. Fuseau système Asia/Shanghai ou Asia/Urumqi plus proxy — le signal séparateur de date était historiquement superposé.

04

Auditer les manifestes Native Messaging (incident A) : sous ~/Library/Application Support/<navigateur>/NativeMessagingHosts/ chercher com.anthropic.claude_browser_extension.json. Supprimer si besoin — Claude Desktop peut recréer au redémarrage.

05

Revoir les toggles d'autorisation Claude Desktop : versions ultérieures avec toggle, mais selon analyses sécurité le modèle de permission sous-jacent n'est pas entièrement retiré. Les entreprises doivent évaluer l'usage production des agents desktop.

06

Isoler en environnements entreprise/sensibles : traiter chaque agent IA desktop comme programme à haut privilège — moindre privilège, autorisation explicite, comportement auditable. Hébergement agent : centre d'aide.

bash
claude --version
find ~/Library/Application\ Support -path "*/NativeMessagingHosts/com.anthropic.claude_browser_extension.json"
grep -r "ANTHROPIC_BASE_URL" ~/.zshrc ~/.bashrc ~/.zprofile 2>/dev/null
05

Ce que cela signifie : dépassements des fournisseurs IA et comment réagir

La vraie leçon n'est pas « une apostrophe ». C'est que lorsque la capacité des modèles s'emballe tandis que les frontières de sécurité, le consentement et l'auditabilité prennent du retard, les fournisseurs continueront de franchir la frontière de confiance avec les utilisateurs (et autres éditeurs de logiciels) au nom de l'« UX » ou de la « prévention des abus ».

A

147 règles : listes domaines/mots-clés obfusquées via base64 + XOR(91) ; confirmées en versions 2.1.193–2.1.196 (thereallo.dev).

B

Traction HN : fil sur la page d'accueil en quelques heures — 350+ points, 100+ commentaires, communauté profondément divisée (Hacker News, 30/06/2026).

C

Taux d'injection Claude for Chrome : selon la divulgation d'Anthropic — 23,6 % non atténué, 11,2 % atténué — risque réel combiné au canal à haut privilège de l'incident A.

PrincipeAction
Défaut de méfiance ; exiger des preuvesReproductible, auditable et désactivable est la barre de confiance
Divulgation plutôt que dissimulationCombattre la distillation ouvertement — documenter, fournir un toggle, pas enfoui dans la ponctuation
Moindre privilège + isolationTraiter chaque agent desktop comme à haut privilège
Vote par les pieds + régulationLe droit type RGPD et le choix du marché sont le contrôle ultime sur « la technologie sans limites »

Sources : The Register (changements permissions Claude Desktop, 04/2026) ; Malwarebytes / gHacks / YOOTA (couverture Native Messaging) ; thereallo.dev (reverse engineering original Claude Code) ; Tech Startups / TMC Insight / Developers Digest / TechTimes (correctif 2.1.197) ; analyse de risque Antiy Labs.

Considérons les alternatives : exécuter Claude Desktop à nu sur un Mac personnel avec Native Messaging multi-navigateur laisse des canaux à haut privilège et surfaces d'injection difficiles à auditer ; dépendre entièrement de revendeurs Claude tiers vous expose longtemps à du fingerprinting non divulgué ; macOS virtualisé pour agents viole l'EULA Apple et casse la signature Xcode. Pour des environnements agent IA en production nécessitant CI/CD iOS, root complet et stabilité 7×24, la location cloud dédiée Mac Mini M4 KVMNODE est généralement la meilleure voie : matériel 100 % physique, sudo ouvert, conditions flexibles jour/semaine/mois, Claude Code dans un hôte isolé et auditable. La technologie peut être neutre ; une entreprise ne l'est pas. Plus le modèle est capable, plus le fournisseur doit se contraindre — et cela ne devrait pas être un secret qu'on ne découvre qu'en reverse-engineering un binaire.