Vai al contenuto
LIVE
CYBERSECURITY & AI

Claude Code salva password e chiavi in chiaro: 1.122 file esposti su GitHub

Apiiro rileva che il file .claude/settings.local.json di Claude Code, usato dopo "Yes, and don't ask again", conserva segreti in chiaro. Ne risultano esposti 2.539 in 1.994 repository.

CY CyberNexus
08.11.2026 · 4 min di lettura
Claude Code salva password e chiavi in chiaro: 1.122 file esposti su GitHub
Foto: The Hacker News
  • Claude Code salva in chiaro i comandi approvati con 'don't ask again', segreti inclusi
  • 1.122 copie pubbliche del file su GitHub contengono segreti; 2.539 in totale in 1.994 repository
  • Colpiti anche 63 organizzazioni; scanner come gitleaks e TruffleHog ne perdono molti
  • Ruotare subito le credenziali, poi ripulire repository e cronologia git

Password e chiavi API digitate dagli sviluppatori nei comandi approvati in Claude Code, l’assistente di programmazione di Anthropic, sono finite in repository pubblici su GitHub. Lo sostiene la società di sicurezza Apiiro, che ha pubblicato la ricerca il giorno prima della notizia. I ricercatori non hanno verificato se i segreti siano ancora validi. Un’azienda avvisata nei giorni scorsi ha però confermato che la propria chiave era attiva.

Come il segreto finisce nel file

Per impostazione predefinita Claude Code chiede conferma prima di eseguire la maggior parte dei comandi shell. Se l’utente sceglie “Yes, and don’t ask again”, lo strumento salva una regola di autorizzazione nel file .claude/settings.local.json del progetto. Nelle sessioni successive i comandi corrispondenti partono senza richiesta.

La regola copia ciò che il prompt proponeva. A volte è un pattern, come npm test *. Altre volte è il comando esatto, e in quel caso password o token digitati vengono salvati in chiaro.

Claude Code prova a tenere il file fuori da git. Alla prima scrittura lo aggiunge agli exclude globali di git dell’utente. Questa protezione però vale solo per quel computer e non protegge un file già committato. Lo strumento non lo inserisce nel .gitignore del progetto, quindi la protezione non viaggia con il repository. In 539 dei 1.105 repository tracciati, un commit con Claude come co-autore ha modificato il file: secondo i ricercatori, spesso è Claude stesso a committarlo.

I numeri della ricerca

  • 104.185 copie del file in 103.617 repository pubblici; circa l’1,1% (1.122 copie) contiene almeno un segreto, per un totale di 1.379 segreti distinti.
  • Oltre un terzo dei segreti apre direttamente un database, tra cui 379 password di database.
  • Presenti anche 43 accessi SSH a server pubblici, 42 token per GitHub, GitLab e npm, 23 chiavi AWS.
  • 63 organizzazioni coinvolte, per lo più software house. Tra i casi più gravi, una chiave cloud con privilegi di amministratore di un produttore di database e la password del proprietario di un database di cartelle cliniche.
  • Tutti i file con segreti erano ancora sul branch predefinito; in metà dei repository da almeno 217 giorni.
  • Le versioni precedenti contengono altri 734 segreti in 509 repository; 211 fork di 74 repository replicano gli stessi segreti.
  • Anche il file condiviso .claude/settings.json ne contiene: 298 copie su 76.011.

Considerando versioni storiche e log di chat degli agenti, il totale sale a 2.539 segreti in 1.994 repository. Dei 16 agenti di programmazione confrontati, Claude Code è l’unico confermato a salvare per impostazione predefinita il comando approvato completo in un file di progetto.

Gli scanner comuni non bastano. Senza la fase di verifica, gitleaks ha segnalato 564 dei 1.122 file e TruffleHog 643; 215 sono sfuggiti a entrambi. Le password dopo PGPASSWORD=, sshpass -p o mysql -p assomigliano a normali parole in una riga di comando.

Cosa fare

Per gli sviluppatori, Apiiro consiglia di:

  • cercare nella propria organizzazione GitHub i file .claude/settings.local.json e .claude/settings.json, controllando anche la cronologia git;
  • ruotare prima di tutto ogni password, token e chiave presenti nei file, anche in passato, e solo dopo ripulire;
  • smettere di tracciare il file con git rm --cached e inserirlo nel .gitignore del repository;
  • controllare il file in locale ed eliminare le regole che contengono segreti;
  • usare variabili provenienti da un secrets manager, come $DB_URL, e approvare pattern come Bash(npm run:*) invece di comandi singoli.

Per i team di sicurezza: trattare le cartelle degli agenti (.claude/, .cursor/, .gemini/, .specstory/) e i file di memoria come i file .env. Aggiungerle alle scansioni pre-commit e CI, cronologia git compresa, con regole che intercettino le password nei comandi. Inserire .claude/settings.local.json nei template .gitignore aziendali e verificare per prime le credenziali associate a server pubblici. Le copie fuori da GitHub contano comunque: il file può finire in pacchetti npm, immagini Docker, archivi zip o cartelle sincronizzate.

Segnalazioni rimaste senza risposta

Il comportamento era già stato segnalato. Un bug report del 11 agosto 2025 descriveva comandi con chiavi API e token salvati in chiaro. Un bot automatico lo ha chiuso come “not planned” il 3 gennaio, dopo 60 giorni senza attività. Anche le altre quattro segnalazioni citate dai ricercatori sono state chiuse dallo stesso bot, l’ultima ieri, e secondo Apiiro nessuna ha ricevuto risposta da Anthropic.

Il rischio resta concreto: in passato malware ha cercato segreti sulle macchine degli sviluppatori. A settembre 2025 il worm Shai-Hulud ha eseguito lo scanner TruffleHog sui computer infetti.

Indicatori di compromissione (IoC)

.claude/settings.local[.]json
.claude/settings[.]json

Fonte: The Hacker News · Foto: The Hacker News

CY
SCRITTO DA CyberNexus
newsletter.sh
// OGNI SETTIMANA

Le minacce della settimana, prima che arrivino da te.

Una mail, le notizie che contano, spiegate in modo chiaro.

Zero spam. Iscrivendoti accetti l’informativa privacy.