Hopp til hovedinnhold

Søndag 8. november

 Tilbake Anthropic 3 min 00.10

Apiiro fant hemmeligheter i 1 122 offentlige Claude Code-filer: «Ja, og ikke spør igjen» lagrer passord i klartekst

søndag 8. november · KI-generert · Kilde: Apiiro

Innholdet er KI-generert og kan inneholde feil. Sjekk originalkilden.

Sjekk `.claude/settings.local.json` i alle repoene dine, fordi Claude Code lagrer kommandoer du godkjenner med «Yes, and don't ask again» ordrett, passord og API-nøkler inkludert.

1 122 av 104 185 offentlige kopier av .claude/settings.local.json på GitHub inneholder en ekte hemmelighet, ifølge en rapport sikkerhetsselskapet Apiiro publiserte 5. november. Teller du med git-historikk, den delte settings.json-fila og agent-transkripter lagret i repoer, kommer Apiiro til 2 539 distinkte hemmeligheter i 1 994 repoer. 63 organisasjoner, de fleste programvareselskaper, er rammet, og én bekreftet at nøkkelen var i bruk.

Mekanismen er enkel. Ber du Claude Code sjekke en database eller kalle et API, tar kommandoen agenten foreslår med seg hemmeligheten fra konfigurasjonen din. Velger du «Yes, and don't ask again», lagres hele kommandostrengen som en tillatelsesregel i prosjektmappa. Claude Code legger fila i din globale gitignore når den opprettes i et repo, men aldri i repoets egen .gitignore. En mappe som blir repo senere, en klone på en annen maskin og en fil som allerede er committet, er ikke dekket. I 539 av 1 105 sporede repoer var det en commit med Claude som medforfatter som endret fila.

«Dette er Claude Codes egen oppførsel, ikke modellens: det skjer med Anthropics nyeste modeller også, og vi reproduserte det med Opus 5.5 og Fable 5.1.» — Apiiro, i rapporten

Secret-scanning redder deg ikke alltid. Av de 1 122 filene flagget gitleaks 564 og TruffleHog 643, mens 215 gikk under radaren til begge. Et passord etter PGPASSWORD=, sshpass -p eller mysql -p ser ut som et vanlig ord i en kommandolinje, ikke som en nøkkel med kjent prefiks. Over en tredjedel av funnene åpner en database direkte: 379 databasepassord og 122 Supabase service-role-nøkler. Store filer er verst, for én av ti filer over 8 KB hadde en ekte hemmelighet.

Å slette fila hjelper lite. Tidligere versjoner holdt 734 hemmeligheter som ikke finnes i noen nåværende kopi, og 211 forks av 74 repoer bærer de samme nøklene videre. I median-repoet ble fila først committet 217 dager før Apiiro sjekket.

Bakgrunn

Claude Code-brukere har rapportert mekanismen i GitHub-issues siden august 2025, blant dem #5544, #11982, #13106 og #91270. Ifølge Apiiro fikk ingen av dem svar fra Anthropic, og tre ble lukket automatisk som inaktive eller duplikater.

«Komplette bash-kommandoer med API-nøkler, hemmelige tokens, autorisasjons-headere og andre sensitive data lagres ordrett i JSON-konfigurasjonsfila.» — asherfeldmangit, i GitHub-issue #5544

Apiiro sammenlignet dokumentasjonen til 16 kodeagenter, og Claude Code er den eneste som bekreftet skriver hele den godkjente kommandoen til en prosjektfil som standard. Fila ligger også i klartekst på maskiner som aldri pusher den, og Shai-Hulud-ormen i npm kjørte TruffleHog over ofrenes filer i september 2025.

Hva bør du gjøre?

  1. Søk i GitHub-organisasjonen din etter .claude/settings.local.json og .claude/settings.json, og sjekk historikken med git log --all -- .claude/settings.local.json.
  2. Er fila sporet, kjør git rm --cached .claude/settings.local.json, legg den i repoets egen .gitignore og roter hver nøkkel den noen gang har inneholdt.
  3. Åpne fila lokalt og slett allow-regler med hemmeligheter. Referer heller til $DB_URL i kommandoene, og godkjenn mønstre som Bash(npm run:*) i stedet for bokstavelige kommandoer.
  4. Lær pre-commit-skanneren å fange passord i kommandoer, som PGPASSWORD=, sshpass -p og bearer-headere, ikke bare kjente nøkkelformater.

Pulsen · norske KI-nyheter for deg som bygger. Sakene er KI-generert fra originalkilden, som alltid lenkes.