Teknologi

Claude Code lagret passord i klartekst, og 1122 filer ligger åpent på GitHub

Susan Hill
Legg oss til på Google

Anthropics Claude Code ber om tillatelse før det kjører de fleste skallkommandoer, og ett av svaralternativene er «Ja, og ikke spør igjen». Velger du dette for en kommando som inneholder et passord, for eksempel ved innlogging til en database, kan Claude Code skrive hele kommandoen – passord inkludert – til en innstillingsfil i ren tekst i prosjektet ditt. Sikkerhetsforskere har nå funnet tusenvis av slike passord og nøkler i offentlige kodearkiver på GitHub, der hvem som helst kan lese dem.

Hvis du bruker Claude Code, er filen du bør se etter, settings.local.json. Den ligger i en skjult .claude-mappe i roten av kodearkivet, og følger med prosjektet med mindre du hindrer det. Oppførselen er den samme i alle land der verktøyet er tilgjengelig. Det tar et minutt å endre vanene sine, mens det tar langt lengre tid å rydde opp etter et passord på avveie: Å slette filen fjerner den ikke fra Git-historikken eller fra andre brukeres forgreininger av kodearkivet.

Programvaresikkerhetsselskapet Apiiro søkte gjennom offentlig tilgjengelige GitHub-arkiver og fant 104 185 kopier av filen i 103 617 kodearkiver, ifølge selskapets forskning, omtalt av The Hacker News. Omtrent 1,1 prosent, eller 1 122 kopier, inneholder minst én hemmelig opplysning – til sammen 1 379 ulike påloggingsopplysninger. Mer enn en tredel gir direkte tilgang til en database, deriblant 379 databasepassord. Blant funnene var også 43 SSH-pålogginger til offentlige servere, 42 tilgangstokener for GitHub, GitLab og npm, samt 23 nøkler til Amazon Web Services.

Det er ikke bare hobbyutviklere som er berørt. Apiiro sporet filene til 63 organisasjoner, hovedsakelig programvareselskaper av ulik størrelse. Blant de mest alvorlige eksemplene var en databaseleverandørs egen skybaserte nøkkel med administratortilgang og eierpassordet til en database med pasientjournaler. Eldre versjoner av filen i Git-historikken inneholder ytterligere 734 hemmelige opplysninger fordelt på 509 kodearkiver, og 211 forgreininger av 74 kodearkiver har de samme opplysningene som originalene. Tar man med den delte innstillingsfilen som team med hensikt legger inn i kodearkivene, og lagrede chatlogger fra agenter, øker tallet til 2 539 hemmelige opplysninger i 1 994 kodearkiver.

Claude Code prøver riktignok å holde filen utenfor versjonskontroll. I Anthropics dokumentasjon for innstillinger står det at verktøyet legger til en regel i brukerens globale Git-excludes-fil første gang det skriver til filen, slik at Git ignorerer den på den aktuelle datamaskinen. Regeln følger ikke prosjektet videre til en kollegas bærbare maskin, en byggserver eller en ny maskin, og den hjelper heller ikke hvis filen allerede er lagt inn i kodearkivet. I 539 av de 1 105 kodearkivene forskerne sporet, endret en commit der Claude var oppført som medforfatter filen. Det tyder på at agenten ofte legger den inn i kodearkivet selv. Av de 16 kodeagentene Apiiro sammenlignet dokumentasjonen for, er Claude Code den eneste det er bekreftet at som standard lagrer hele den godkjente kommandoen i en prosjektfil.

De vanlige sikkerhetsverktøyene fanger ikke opp alt. Apiiro kjørte to populære skannere for hemmelige opplysninger med åpen kildekode, gitleaks og TruffleHog, på alle kopiene: gitleaks varslet om 564 av de 1 122 filene, TruffleHog om 643, mens 215 slapp gjennom begge. De fleste oversette tilfellene var passord skrevet etter PGPASSWORD=, sshpass -p eller mysql -p. For verktøy som leter etter kjente nøkkelformater, ser disse ut som vanlige ord.

Funnene må ses i lys av noen forbehold. Apiiro selger sikkerhetsverktøy for AI-assistert utvikling, så forskningen fungerer også som et salgsfremstøt. Selskapet testet ikke om påloggingsopplysningene fortsatt virker, selv om ett av selskapene det varslet, bekreftet at nøkkelen deres hadde vært aktiv. En verdi ble regnet som en hemmelig opplysning når den samsvarte med et kjent nøkkelformat, eller når den sto ved siden av adressen til en offentlig server og en AI-basert kontrollør var enig i vurderingen. Det gir rom for enkelte falske positive treff. Apiiro påpeker også at tallene for Claude som medforfatter ikke beviser at Claude sto bak alle de eksponerte påloggingsopplysningene. Og GitHub er bare den synlige delen: Filen er vanlig JSON i prosjektmappen og kan dermed også følge med i en npm-pakke, et Docker-avtrykk, et ZIP-arkiv eller en synkronisert mappe.

Forskernes første råd er å bytte ut alt: Endre hvert passord, token og hver nøkkel filen noen gang har inneholdt før du rydder opp, for hemmelige opplysninger som har vært offentlige, må regnes som kompromittert enten du skriver om historikken eller ikke. Slutt deretter å spore filen med git rm –cached, legg den til i kodearkivets egen .gitignore, og åpne /permissions i Claude Code for å slette eventuelle lagrede regler som inneholder hemmelig informasjon. Hvis du viser til påloggingsopplysninger via miljøvariabler, lagrer en regel navnet, for eksempel $DB_URL, i stedet for passordet. Godkjenner du mønstre framfor enkeltkommandoer, slipper du dessuten at konkrete argumenter lagres i filen.

Brukere har meldt fra om dette før. En feilrapport fra 11. august 2025 beskrev hvordan godkjente kommandoer med API-nøkler og tokener ble lagret ordrett i settings.local.json. En automatisert bot lukket saken som «not planned» 3. januar, etter 60 dager uten aktivitet. Apiiro, som offentliggjorde funnene sine 6. november, sier at de fire beslektede rapportene selskapet viser til, alle ble lukket av den samme boten. Den siste ble lukket 6. november, uten svar fra Anthropic. Per 2. november lå alle de eksponerte filene Apiiro fant, fortsatt i hovedgrenen til kodearkivet sitt; i halvparten av tilfellene hadde de ligget der i minst 217 dager.

Verken The Hacker News eller Apiiro melder om noe svar fra Anthropic, og den dokumenterte oppførselen er uendret: Neste gang du velger «ikke spør igjen» for en kommando der du har skrevet inn et passord, blir passordet også lagret.

Tagger: , , , , ,

Legg oss til på Google

Diskusjon

Det er 0 kommentarer.