Teknik

Claude Code sparade lösenord i klartext och 1 122 filer ligger öppet på GitHub

Susan Hill
Lägg till oss på Google

Anthropics Claude Code ber om tillåtelse innan programmet kör de flesta skalkommandon. Ett av svarsalternativen är ”Ja, och fråga inte igen”. Väljer du det för ett kommando som innehåller ett lösenord, till exempel inloggningsuppgifter till en databas, kan Claude Code skriva hela kommandot – inklusive lösenordet – i en inställningsfil i klartext i projektet. Säkerhetsforskare har nu hittat tusentals sådana lösenord och nycklar i offentliga kodförråd på GitHub, där vem som helst kan läsa dem.

Om du använder Claude Code är filen du ska leta efter settings.local.json. Den ligger i den dolda mappen .claude i kodförrådets rot och följer med projektet om du inte ser till att stoppa den. Beteendet är detsamma i alla länder där verktyget finns tillgängligt. Det tar en minut att ändra sina vanor, medan det tar betydligt längre tid att städa upp efter ett läckt lösenord, eftersom filen inte försvinner ur git-historiken eller från andra personers forkar bara för att du raderar den.

Programvarusäkerhetsföretaget Apiiro sökte igenom offentliga GitHub och hittade 104 185 kopior av filen i 103 617 kodförråd, enligt företagets undersökning, som The Hacker News rapporterat om. Omkring 1,1 procent, eller 1 122 kopior, innehåller minst en hemlighet, sammanlagt 1 379 olika autentiseringsuppgifter. Mer än en tredjedel skulle ge direkt åtkomst till en databas, däribland 379 databaslösenord. Bland fynden finns också 43 SSH-inloggningar till offentliga servrar, 42 token för GitHub, GitLab och npm samt 23 nycklar till Amazon Web Services.

Det handlar inte bara om hobbyutvecklare. Apiiro spårade filerna till 63 organisationer, främst mjukvaruföretag av olika storlek. Bland de värsta exemplen finns en databasleverantörs egen molnnyckel med administratörsbehörighet och ägarlösenordet till en databas med patientjournaler. Äldre versioner av filen i git-historiken innehåller ytterligare 734 hemligheter i 509 kodförråd, och 211 forkar av 74 kodförråd innehåller samma hemligheter som originalen. Räknar man också in den delade inställningsfil som team checkar in med avsikt och sparade chattloggar från agenter stiger antalet till 2 539 hemligheter i 1 994 kodförråd.

Claude Code försöker faktiskt hålla filen borta från versionshantering. I Anthropics dokumentation om inställningar står det att verktyget första gången det skriver filen lägger till en regel i användarens globala git-exclude-fil, så att git ignorerar den på just den datorn. Regeln följer inte med projektet till en kollegas dator, en byggserver eller en nyinstallerad maskin, och den hjälper inte om filen redan har checkats in. I 539 av de 1 105 kodförråd som forskarna spårade ändrades filen i en commit där Claude stod som medförfattare, vilket tyder på att agenten ofta checkar in den själv. Av de 16 kodningsagenter vars dokumentation Apiiro jämförde är Claude Code den enda som bekräftat sparar hela det godkända kommandot i en projektfil som standard.

De vanliga skydden fångar inte upp allt. Apiiro körde två populära verktyg för att hitta hemligheter i öppen källkod, gitleaks och TruffleHog, mot samtliga kopior: gitleaks flaggade 564 av de 1 122 filerna, TruffleHog flaggade 643 och 215 slank igenom båda. De flesta missarna gällde lösenord som skrivits efter PGPASSWORD=, sshpass -p eller mysql -p. För verktyg som letar efter kända nyckelformat ser de ut som vanliga ord.

Resultaten kommer med vissa förbehåll. Apiiro säljer säkerhetsverktyg för AI-assisterad utveckling, så undersökningen fungerar också som en säljfrämjande text. Företaget testade inte om autentiseringsuppgifterna fortfarande fungerar, även om ett företag som Apiiro kontaktade bekräftade att dess nyckel hade varit aktiv. Ett värde räknades som en hemlighet om det matchade ett känt nyckelformat eller låg intill en offentlig serveradress och godkändes av en AI-granskare, vilket lämnar visst utrymme för falska positiva resultat. Apiiro påpekar också att uppgiften om Claude som medförfattare inte bevisar att Claude införde alla exponerade autentiseringsuppgifter. Och GitHub är bara den synliga delen: filen är vanlig JSON i projektmappen och kan därför också följa med i ett npm-paket, en Docker-avbildning, ett zip-arkiv eller en synkroniserad mapp.

Forskarnas första råd är att byta ut allt: ändra varje lösenord, token och nyckel som filen någonsin innehållit innan du börjar städa, eftersom en hemlighet som varit offentlig är förbrukad oavsett om du skriver om historiken. Sluta sedan spåra filen med git rm –cached, lägg till den i kodförrådets egen .gitignore och öppna /permissions i Claude Code för att radera eventuella sparade regler som innehåller en hemlighet. Om du hänvisar till autentiseringsuppgifter via miljövariabler sparas ett namn som $DB_URL i regeln i stället för lösenordet. Och om du godkänner mönster i stället för enstaka kommandon slipper de bokstavliga argumenten helt hamna i filen.

Användare har uppmärksammat problemet tidigare. En felrapport som lämnades in den 11 augusti 2025 uppgav att godkända kommandon med API-nycklar och token sparades ord för ord i settings.local.json. En automatiserad bot stängde rapporten som ”not planned” den 3 januari, efter 60 dagar utan aktivitet. Apiiro, som publicerade sina resultat den 6 november, säger att de fyra relaterade rapporter företaget hänvisar till alla stängdes av samma bot, senast den 6 november, utan svar från Anthropic. Den 2 november fanns fortfarande varje exponerad fil som Apiiro hittade kvar på huvudgrenen i sitt kodförråd, i hälften av fallen sedan minst 217 dagar.

Varken The Hacker News eller Apiiro uppger att Anthropic har svarat, och det dokumenterade beteendet är oförändrat: nästa gång du väljer ”fråga inte igen” för ett kommando där du skrivit in ett lösenord sparas även lösenordet.

Taggar: , , , , ,

Lägg till oss på Google

Diskussion

Det finns 0 kommentarer.