De handigste knop in de Claude Code van Anthropic – “Ja, en niet nog een keer vragen” – is stilletjes veranderd in een machine die legitimatiegegevens lekt, zo blijkt uit nieuw onderzoek van applicatiebeveiligingsbedrijf Apiiro. Wanneer ontwikkelaars een commando goedkeuren dat een geheim bevat, slaat Claude Code dat exacte commando, inclusief het geheim, op in een lokaal instellingenbestand dat vaak terechtkomt in openbare GitHub-repository's. De scan van Apiiro vond 2.539 echte geheimen in 1.994 openbare opslagplaatsen: databasewachtwoorden, cloud-API-sleutels, tokens en SSH-rootlogins, verspreid over 63 organisaties, waarvan de meeste softwarebedrijven. Eén getroffen bedrijf bevestigde tegenover onderzoekers dat een blootgestelde sleutel live was geweest. Het is het tweede privacy-incident met de Claude Code deze maand, na de openbaarmaking van e-mails van gebruikers aan websites via User-Agent-headers – en dit heeft betrekking op de productie-infrastructuur, niet alleen op contactgegevens. We volgen de beveiliging van AI-coderingsagenten op de voet in onze dekking van AI-tools.
Hoe een toestemmingsregel een lek wordt
Het mechanisme is een neveneffect van het toestemmingssysteem van Claude Code, dat om goedkeuring vraagt voordat shell-opdrachten worden uitgevoerd – vaak meerdere keren per sessie. Vraag de agent om een databaseverbinding te debuggen of een interne API aan te roepen, en de opdracht die hij voorstelt bevat alle inloggegevens die voor de taak nodig zijn, omdat hij zonder deze niet kan werken.
Kies "Ja, en vraag het niet nog een keer", en Claude Code voert de opdracht uit en schrijft een toestemmingsregel naar `.claude/settings.local.json` in de projectmap. De regel is geen abstractie: het is de volledige opdrachtreeks zelf, het wachtwoord getypt in platte tekst en zo.
Het bestand is ontworpen om op de computer van de ontwikkelaar te blijven staan, en Claude Code probeert het te beschermen — door het toe te voegen aan de global git negeerlijst van de ontwikkelaar. Dat omvat het algemene geval, maar niet de randgevallen: een map die later een repository wordt, een kloon op een andere machine waar de globale negeer niet bestaat, of een bestand dat iemand heeft vastgelegd voordat het negeeritem werd toegevoegd. Cruciaal is dat de regel nooit in de eigen `.gitignore` van de repository terechtkomt, zodat er geen bescherming met het project meegaat.
Wat het probleem nog verergert, is dat Claude Code het bestand vaak zelf vastlegt. In 539 van de 1.105 repository's waar Apiiro een echt geheim traceerde, had een commit, mede geschreven door Claude, het instellingenbestand gewijzigd - commits met de naam modellen variërend van Sonnet 4.5 tot Opus 5.5. Apiiro merkt op dat het gedrag van Claude Code afkomstig is, en niet van het model: het bedrijf heeft het gereproduceerd met zowel Opus 5.5 als Fable 5.1.
De schaal van de belichting
Apiiro telde 104.185 openbare exemplaren van `.claude/settings.local.json` op GitHub. Daarvan bevatten er 1.122 minstens één echt geheim. De onderzoekers vonden nog 1.160 geheimen verborgen in de git-geschiedenis van de repository, in de gedeelde `settings.json`-bestanden die teams opzettelijk committen, en in opgeslagen chattranscripties van agenten die in repo's waren ingecheckt.
De voorbeelden van Apiiro-documenten lezen als een checklist voor slechtste praktijken. Een databaseleverancier heeft naast zijn clusterhost zijn eigen cloud-API-sleutel op beheerdersniveau openbaar gemaakt, met beheertoegang en zonder vervaldatum. Een B2B-startup heeft een productie-Azure Postgres-wachtwoord gelekt. Een softwarebureau heeft een Square-productietoegangstoken vrijgegeven. Een IT-dienstverlener die een applicatie voor medische dossiers bouwde, lekte het eigenaarswachtwoord van die database. Open-sourceprojecten deden het niet beter: één met meer dan duizend sterren publiceerde een API-sleutel in OpenAI-formaat, een ander een npm-token.
De veiligheidscontext maakt de bevinding nog erger. Malware die inloggegevens steelt, overspoelt ontwikkelaarsmachines al in grote hoeveelheden. Apiiro verwijst naar de Shai-Hulud npm-worm, die de TruffleHog-scanner over de bestanden van slachtoffers liet draaien. Diezelfde scanner zou 643 van de 1.122 gelekte bestanden markeren die Apiiro vond. Zorgwekkender is het residu: een op de vijf gelekte bestanden wordt noch door TruffleHog, noch door gitleaks gemarkeerd, meestal omdat het geheim een wachtwoord is dat in een commando wordt getypt in plaats van een sleutel in een herkenbaar tokenformaat. Met andere woorden, geheime scanners zijn structureel blind voor deze lekklasse.
Wat getroffen teams moeten doen
De herstelbegeleiding van Apiiro begint met het verkennen van de straal van de ontploffing. Zoek in je GitHub-organisatie naar `.claude/settings.local.json` en `.claude/settings.json` - elke hit is een bestand dat iedereen nu kan lezen. Controleer de git-geschiedenis van elke repository voor het bestand, zelfs als het is verwijderd, omdat elke fork en kloon de geschiedenis behoudt. Controleer vervolgens de lokale kopieën op elke ontwikkelaarscomputer: elk item op de acceptatielijst is een opdracht die iemand heeft goedgekeurd, met wat er ook in is getypt.
De volgorde van het bedrijf is van belang: eerst roteren, daarna opruimen. Het verwijderen van een bestand uit een repository doet niets aan de inloggegevens die al openbaar waren, en git history houdt blootgelegde geheimen voor onbepaalde tijd levend.
Een patroon, niet eenmalig
Voor Anthropic komt de bevinding terecht een week nadat Claude Code werd betrapt op het lekken van e-mailadressen van gebruikers naar elke website die werd bezocht via User-Agent-headers - een bug die werd verholpen door een privacyaanpassing te verzenden, die critici een pleister noemden. De twee incidenten delen een hoofdoorzaak: een agent die krachtige context afhandelt (inloggegevens, contactgegevens, interne hostnamen) en standaardbeslissingen neemt over waar die context naartoe gaat.
De les generaliseert verder dan Claude Code. Nu codeeragenten standaardapparatuur worden, worden de bestanden die ze schrijven om zichzelf te ordenen een nieuwe, niet-gescande hoek van de softwaretoeleveringsketen. De cijfers van Apiiro suggereren dat corner al lekt op een schaal die de meeste organisaties nog niet zijn gaan meten.
Blijf AI een stap voor
AI-tools worden sneller verzonden dan hun veiligheidsbeoordelingen kunnen bijhouden. Volg elke ontwikkeling in onze AI-nieuwsverslaggeving.
Lees meer AI-nieuws →