Il 5 novembre 2026 i ricercatori di Apiiro hanno pubblicato una scansione di GitHub: su 104.185 copie pubbliche del file .claude/settings.local.json di Claude Code, 1.122 contenevano segreti reali, come password di database, chiavi e token. Il file salva le approvazioni «non chiedermelo più», e se il comando approvato conteneva un segreto, il segreto resta scritto lì in chiaro. Qui sotto trovi come succede e la checklist da fare oggi sui tuoi progetti.
In breve
- Con «Yes, and don’t ask again» su un comando Bash, Claude Code salva l’approvazione come regola
allowin.claude/settings.local.json. - Se il comando contiene una password o un token, il segreto resta nel file, senza cifratura né mascheramento.
- Secondo Apiiro, su 104.185 copie pubbliche del file su GitHub, 1.122 avevano almeno un segreto reale: circa l’1,1%.
- Se un segreto è già finito in un repository pubblico, cancellare il file non basta: la chiave va cambiata.
Cosa è successo: la ricerca di Apiiro
Apiiro, società di sicurezza applicativa, ha scansionato GitHub fra il 1° e il 3 novembre 2026 e ha pubblicato i risultati il 5 novembre. I numeri qui sotto li riporto da due articoli di stampa italiani che citano la ricerca, CyberSecurity Italia e Techzilla: la pagina originale di Apiiro non mi si è lasciata aprire, quindi non l’ho letta direttamente.
- 104.185 file pubblici
.claude/settings.local.jsontrovati su GitHub. - 1.122 file (circa l’1,1% del totale) contenevano almeno un segreto reale e attivo, per un totale di 1.379 segreti distinti.
- Includendo la cronologia di git e altri file, Techzilla riporta 2.539 credenziali in 1.994 repository di 63 organizzazioni.
- Fra i tipi di segreto citati: 379 password di database, 122 chiavi di servizio, 103 token Supabase, 43 accessi SSH e 23 chiavi AWS.
- Secondo Techzilla, strumenti di scansione come gitleaks e TruffleHog hanno mancato 215 dei 1.122 file (circa il 19%), perché la password stava dentro stringhe di comando più lunghe.
I due articoli parlano di copie del file, non di un numero di progetti, e nessuno dei due riporta una risposta di Anthropic.
Perché succede
Claude Code legge le impostazioni da 4 file: utente, progetto condiviso, progetto locale e impostazioni gestite dall’organizzazione. Il file locale, .claude/settings.local.json, è quello dove finiscono le approvazioni «non chiedermelo più». Se rispondi «Yes, and don’t ask again», Claude Code salva una regola di permesso con il comando approvato, così la volta dopo non te lo richiede. La regola è il comando intero: se per comodità avevi scritto la password dentro il comando, ora è anche dentro il file.
Il comportamento era già descritto nella segnalazione pubblica #5544 sul tracker di Claude Code, aperta l’11 agosto 2025 e chiusa automaticamente dal bot come «not planned» il 3 gennaio 2026 per inattività: nella pagina non compare nessuna risposta di un manutentore.
Secondo la documentazione ufficiale sulle impostazioni, la prima volta che Claude Code scrive quel file aggiunge **/.claude/settings.local.json al file di esclusioni globali di git della tua macchina, in modo che resti fuori dai tuoi commit. La stessa pagina precisa che, se il file l’hai creato a mano, devi aggiungerlo tu al .gitignore. Un’esclusione globale vale solo sul tuo computer: chi clona il progetto, lo copia o lo inizializza su un’altra macchina non ha la stessa protezione.
È un limite di come lo strumento salva i permessi, non un errore del modello. Se usi Claude Code ogni giorno ti riguarda anche se non hai mai pubblicato nulla: basta una cartella di progetto condivisa con un collaboratore o un fornitore.
Cosa fare adesso: la checklist in 6 passi
- Cerca il file. Guarda se nei tuoi progetti esiste
.claude/settings.local.jsone leggi le regole sotto «permissions». Ogni riga con una password, un token o una chiave è un segreto. - Controlla i repository. Verifica che il file non sia tracciato da git e non compaia nella cronologia. Se è tracciato, toglilo dal tracciamento con
git rm --cached. - Aggiungi il file al .gitignore. Inserisci
.claude/settings.local.jsonnel.gitignoredi ogni repository, non solo nelle esclusioni della tua macchina. - Cambia le chiavi esposte. Se un segreto è finito in un file pubblico, va considerato compromesso: cancellare il file non elimina cronologia, fork e cloni. Genera una chiave nuova e revoca la vecchia.
- Ripulisci le regole. Elimina dal file le regole che contengono segreti.
- Cambia abitudine. Usa variabili d’ambiente o un gestore di segreti al posto delle password scritte nei comandi, e approva schemi generici invece di comandi interi con dati sensibili.
La mia esperienza
Io uso Claude Code ogni giorno, dentro un sistema di agenti sorvegliato da controlli automatici e test, e scrivo le lezioni dei miei errori. Da questa ricerca ho tenuto una regola che applico per primo: un permesso «non chiedermelo più» si dà a un’azione, mai a un comando che contiene un dato riservato. I segreti stanno in file di configurazione separati dai progetti e dai comandi, e rileggo le regole salvate prima di condividere una cartella di lavoro.
Cosa significa per una PMI
Se fai sviluppare o automatizzare un processo a un freelance, a un’agenzia o a un tuo collaboratore con agenti AI, chiedi una cosa semplice: dove finiscono le chiavi dei tuoi sistemi (gestionale, CRM, database, pagamenti)? Le chiavi devono stare in un gestore di segreti o nelle variabili d’ambiente, mai dentro comandi, appunti o file di progetto. E chi le gestisce deve poterti dire in una frase come le ruota se serve.
Se vuoi capire come impostare lo strumento nel modo giusto, trovi il quadro generale in Claude Code: cos’è e come si usa, spiegato a un imprenditore. Sullo stesso tema della sicurezza degli strumenti di sviluppo ho scritto anche di un’estensione compromessa su Cursor e di un attacco tramite AGENTS.md.
Cosa non è ancora chiaro
- Se e quando Anthropic cambierà il comportamento: nei due articoli che ho letto non c’è una sua dichiarazione, e nella segnalazione #5544 non c’è una risposta di un manutentore.
- Quante delle 1.122 copie con segreti siano ancora online oggi, e quante chiavi siano già state cambiate: la ricerca fotografa i giorni dal 1° al 3 novembre.
Domande frequenti
Claude Code salva le password in chiaro?
Può farlo: se approvi con «Yes, and don’t ask again» un comando che contiene una password, il comando intero viene salvato come regola in .claude/settings.local.json, senza cifratura, come descrive la segnalazione #5544 sul tracker pubblico.
Aggiungere il file al .gitignore basta?
Evita nuove pubblicazioni, ma non cancella ciò che è già stato caricato. Se un segreto è finito in un repository pubblico, va cambiato.
Come uso Claude Code in modo sicuro?
Tieni i segreti in variabili d’ambiente, approva schemi di comando generici, controlla ogni tanto le regole salvate nel file e non pubblicare mai la cartella .claude/ con le tue impostazioni locali.
Se in azienda usi agenti AI per sviluppare o automatizzare e vuoi capire dove stanno oggi le tue chiavi e chi può vederle, prenota una call: ne parliamo con il tuo caso davanti.
Di Mattia Calastri, fondatore di Astra Digital. Aggiornato l’11 novembre 2026.