Claude Code v2.1.248 è stata pubblicata alle 22:12:20 UTC del 27 agosto. Tra una quarantina di voci del changelog compare questa, testuale: "Fixed /ultrareview and locally seeded cloud sessions uploading uncommitted prod.env-style and *.tfvars files, or to editor swap, temp, and backup copies of credential files (e.g. key.pem.tmp, id_rsa.swo); they now stay on your machine."

Cosa sono questi nomi di file

Un prod.env non committato contiene credenziali di produzione. Un file .tfvars contiene variabili di Terraform — spesso chiavi di accesso cloud e segreti dell'infrastruttura. id_rsa.swo è un file di swap di Vim per una chiave SSH privata. Non si tratta di artefatti incidentali; sono i file specifici che uno sviluppatore tiene fuori dal version control proprio perché sono segreti.

L'altra voce principale

La stessa release introduce --restricted (o CLAUDE_CODE_RESTRICTED=1), che "removes the built-in tools that run commands or code and WebFetch (unless named in --tools), keeps file tools inside the working directory, refuses bypassPermissions, and ignores user, project and local settings files." Sempre in 2.1.248: il messaging tra sessioni esteso a Bedrock, Vertex e Foundry, una descrizione dello strumento Workflow ridotta da circa 5,7k token a 1k, e la correzione di un mancato hit della prompt cache che si verificava "roughly once an hour in long sessions" dopo un refresh del token OAuth.

Cosa sbaglia la cornice più comune

Il problema della cornice è l'assenza di cornice. Una correzione per l'esfiltrazione di segreti è stata pubblicata come una voce non numerata — nessun security advisory, nessun identificatore GHSA, nessun CVE, nessun avviso di "azione richiesta", nessuna data di introduzione dichiarata e nessun intervallo di versioni interessate. Gli utenti coinvolti non hanno modo di stabilire se le loro chiavi abbiano lasciato la macchina, né per quanto tempo.

In secondo luogo, il dettaglio .swo e .tmp identifica la classe del bug: l'uploader filtrava i nomi canonici dei file di credenziali, ma non le varianti generate dall'editor accanto ad essi. Si tratta di un fallimento di denylist, quindi di un problema di classe progettuale, presentato qui come una correzione isolata.

In terzo luogo, --restricted è un flag di hardening, non un sandbox. Basta leggere la formulazione: rimuove gli strumenti e ignora i file di impostazioni. Si tratta di una riduzione delle capacità all'interno del processo, non di un confine a livello di sistema operativo — e il nome induce a pensare a un contenimento. Inoltre ignora in silenzio i file di impostazioni utente, di progetto e locali, un cambiamento di comportamento che sorprenderà chi lo attiva aspettandosi solo la rimozione degli strumenti.

Infine, il ritmo oscura la gravità: con tre release in 26 ore, e la 2.1.250 etichettata solo "Bug fixes and reliability improvements," una correzione rilevante per la sicurezza è indistinguibile dal normale churn.