🔍 Contexte
Publié le 31 mars 2026 sur le blog lr0.org, cet article analyse le code source TypeScript de Claude Code (outil CLI d’Anthropic), accidentellement exposé via un fichier source map non obfusqué (cli.js.map). Le dépôt miroir a été publié sur GitHub à l’adresse https://github.com/chatgptprojects/claude-code. Le code comprend 1 897 fichiers pour environ 132 000 lignes de code.
🚨 Nature de la fuite
Anthropic a accidentellement inclus un fichier source map (cli.js.map) dans une version publique de Claude Code, exposant l’intégralité du code TypeScript non obfusqué. Ce type de fuite révèle la logique interne, les commandes cachées, les flags expérimentaux et les mécanismes de sécurité.
🔐 Mécanismes de sécurité identifiés
bashSecurity.ts(2 592 lignes) : système de validation de commandes shell contre des patterns d’attaque incluant :- Expansion
=cmdde Zsh zmodload(accès àzsh/mapfile)- Injection heredoc
- Quoting ANSI-C (
$'\x41') - Substitution de processus (
<()et>()) emulate(exécution de code arbitraire en zsh)ztcp(exfiltration TCP via builtins Zsh)
- Expansion
yoloClassifier.ts(1 495 lignes) : classificateur ML à deux étapes pour le modebypassPermissions, décidant si un appel d’outil peut s’exécuter sans confirmation utilisateur- Système de permissions à cinq modes :
default,acceptEdits,dontAsk,bypassPermissions,auto - Type analytique
AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS: mécanisme de forcing function pour éviter l’envoi de chemins de fichiers ou de code vers les analytics
🕵️ Commandes internes cachées (build interne uniquement)
bughunter,commitPushPr,ctx_viz,goodClaude(désactivé),ultraplan,ultrareview,teleport,ant-trace
🧪 Feature flags expérimentaux
PROACTIVE(agent autonome),KAIROS(mode assistant/brief),COORDINATOR_MODE(orchestration multi-agents),AGENT_TRIGGERS(cron pour agents),VOICE_MODE,BUDDY(système de compagnons)
🛡️ Mécanisme anti-fuite de codenames
Dans src/buddy/types.ts, les noms d’espèces animales sont encodés en hexadécimal pour éviter qu’un nom de codename interne de modèle non publié n’apparaisse dans le bundle compilé, contournant un check grep sur excluded-strings.txt.
📊 Type d’article
Il s’agit d’une analyse technique d’un code source exposé accidentellement, visant à documenter les mécanismes internes de sécurité, les fonctionnalités cachées et les choix d’architecture d’un outil IA commercial.
🧠 TTPs et IOCs détectés
TTP
- T1552.001 — Credentials In Files (Credential Access)
- T1059.004 — Command and Scripting Interpreter: Unix Shell (Execution)
IOC
- Fichiers :
cli.js.map - Chemins :
src/buddy/types.ts - Chemins :
src/query.ts - Chemins :
src/vim/ - Chemins :
bashSecurity.ts - Chemins :
yoloClassifier.ts
🔗 Source originale : https://lr0.org/blog/p/claude-code-source/