Un Errore Grossolano su NPM Svela i Piani di Anthropic
Il ricercatore Chaofan Shou ha scoperto che Anthropic aveva accidentalmente pubblicato l'intero codice sorgente di Claude Code — il loro assistente CLI ufficiale — dentro le source map del pacchetto NPM.
Le source map sono file di debug che mappano il codice minimizzato al sorgente originale. Quando finiscono nel pacchetto distribuito, espongono tutto: ogni file, ogni commento, ogni costante interna. In questo caso, l'array sourcesContent del file .map conteneva letteralmente l'intero progetto in chiaro. Il problema è banale: nessuno ha aggiunto *.map al .npmignore, né ha disabilitato la generazione delle source map nel bundler Bun usato da Anthropic.
L'ironia? Dentro quel codice esiste un sistema chiamato "Undercover Mode" progettato proprio per impedire fughe di informazioni interne. Hanno costruito un sottosistema anti-leak e poi hanno spedito tutto il sorgente in un file .map.
Come Funziona l'Undercover Mode
L'Undercover Mode si attiva quando i dipendenti Anthropic (identificati dalla variabile USER_TYPE === 'ant') usano Claude Code su repository pubblici o open source. Il file utils/undercover.ts inietta nel system prompt dell'agente una direttiva molto esplicita che vieta categoricamente di rivelare informazioni interne nei commit e nelle pull request.
Cosa viene censurato in concreto:
- Nomi in codice dei modelli — i modelli interni usano nomi di animali: Capybara, Tengu, Fennec. Nessuno di questi deve finire in un messaggio di commit
- Versioni non rilasciate — riferimenti come
opus-4-7osonnet-4-8vengono bloccati - Infrastruttura interna — canali Slack, short link tipo
go/cc, nomi di repository privati - Identità AI — la direttiva proibisce esplicitamente di menzionare "Claude Code" o di rivelare in qualunque modo che il contributo è stato generato da un'intelligenza artificiale. Vietati anche i tag
Co-Authored-By
CLAUDE_CODE_UNDERCOVER=1), il sistema entra in modalità undercover automaticamente, a meno che il remote del repository non corrisponda a una allowlist interna. Non esiste un force-off. Se il sistema non è certo al 100% di trovarsi in un repository interno, resta sotto copertura.
Le Implicazioni per l'Open Source
Questo meccanismo conferma ufficialmente che i dipendenti Anthropic contribuiscono attivamente a repository open source usando Claude Code — e che l'AI è istruita a nascondere la propria esistenza. La questione è concreta: quanti commit su progetti pubblici sono in realtà generati da agenti AI mascherati?
Dal punto di vista tecnico, l'architettura dell'Undercover Mode è solida. Separare i contesti sensibili da quelli pubblici tramite feature flag e iniezione condizionale nel prompt è un pattern ragionevole. Ma il leak svela anche altri dettagli interessanti del codebase:
- Buddy — un sistema Tamagotchi completo con gacha deterministico, 18 specie e varianti shiny
- Dream — un motore di consolidazione della memoria che gira in background come un sottoagente, con un sistema a tre gate (tempo, sessioni, lock) e quattro fasi di elaborazione
- KAIROS — un assistente proattivo always-on che osserva e agisce autonomamente
- Coordinator Mode — orchestrazione multi-agente con worker paralleli e scratchpad condiviso
Per chi sviluppa strumenti simili, la lezione è duplice: proteggere il prompt è necessario, ma proteggere il pacchetto distribuito lo è ancora di più. Un .npmignore dimenticato può vanificare mesi di lavoro sulla sicurezza operativa.
FAQs
Il leak è stato causato da un attacco informatico?
No. È stata una semplice disattenzione nella configurazione del build: le source map non sono state escluse dal pacchetto NPM pubblicato.
Cosa altro è emerso dal codice sorgente?
Sistemi interni come Buddy (un pet Tamagotchi), Dream (consolidazione memoria in background), KAIROS (assistente proattivo) e un'architettura multi-agente con orchestratore e worker paralleli.
Ha senso implementare un sistema simile nei propri progetti?
Sì. Iniettare guardrail nel prompt per prevenire leak di informazioni sensibili è una pratica di sicurezza operativa valida per qualsiasi agente AI esposto a contesti pubblici.
Hai bisogno di una consulenza?
Aiuto aziende e startup a sviluppare software, automatizzare processi e integrare AI. Parliamone.
Scrivimi