Cybersecurity10 min lezen

Het Claude Code Lek

Hoe een ontbrekende .npmignore-regel 512.000 regels van Anthropic's best bewaakte broncode blootlegde, en wat dit betekent voor uw ontwikkelpraktijken

Alle artikelen

Samenvatting

Een ontbrekende .npmignore-regel zorgde ervoor dat Anthropic een JavaScript source map van 59,8 MB meestuurde in Claude Code v2.1.88 op npm. Dat bestand verwees naar een publieke R2-bucket met alle 512.000 regels TypeScript-broncode. Ontwikkelaar Chaofan Shou ontdekte het binnen enkele uren. Een clean-room herschrijving bereikte 50.000 GitHub-sterren in minder dan twee uur. Onderzoekers vonden 44 verborgen feature flags, een autonome daemon genaamd KAIROS, een Tamagotchi-huisdiersysteem, anti-distillatiemechanismen, en een controversiele "Undercover Mode" voor Anthropic-medewerkers. Een gelijktijdige npm supply chain-aanval met getrojaniseerde axios-pakketten verergerde de schade.

Wat Er Precies Gebeurde

Op 31 maart 2026 publiceerde Anthropic versie 2.1.88 van hun Claude Code npm-pakket met een bestand dat er nooit in had mogen zitten: een JavaScript source map van 59,8 megabyte. Source maps zijn debug-artefacten. Ze bestaan zodat ontwikkelaars gecompileerde code kunnen herleiden naar de originele broncode. Dit specifieke bestand verwees naar een publiek toegankelijke R2 cloud storage-bucket met de volledige Claude Code codebase. Alle 512.000 regels TypeScript verspreid over ongeveer 1.900 bestanden.

Een ontwikkelaar genaamd Chaofan Shou, een stagiair bij Solayer Labs, ontdekte het te grote .map-bestand en plaatste erover op X rond 4:23 uur Eastern Time. Binnen enkele uren had de tweet 16 miljoen weergaven getrokken. Mirror-repositories en clean-room herschrijvingen begonnen op te duiken op GitHub. De snelste, een Python-herschrijving genaamd claw-code van ontwikkelaar Sigrid Jin, bereikte 50.000 sterren in minder dan twee uur, wat het de snelstgroeiende repository in de geschiedenis van GitHub maakte.

Dit was geen geavanceerde hack. Niemand brak in bij de servers van Anthropic. Het bedrijf vergat simpelweg een debug-bestand uit te sluiten van hun gepubliceerde pakket. Drie dingen gingen tegelijkertijd mis: een ontbrekende .npmignore-regel die .map-bestanden had moeten filteren, source maps die verwezen naar publiek leesbare cloud storage-URL's, en Bun's bundler die standaard source maps genereert tenzij dit expliciet wordt uitgeschakeld. Een bekende Bun runtime-bug (issue #28001, 20 dagen eerder gemeld) werd aanvankelijk als bijdragende factor genoemd, hoewel de oprichter van Bun het verband betwistte omdat die bug betrekking heeft op de frontend dev-server en niet op npm-packaging. Om het erger te maken was dit Anthropic's tweede data-blootstelling in minder dan een week. Slechts vijf dagen eerder had een CMS-misconfiguratie ongeveer 3.000 interne bestanden gelekt, waaronder details over een niet-uitgebracht model genaamd Claude Mythos.

Tijdlijn van Gebeurtenissen

26 maartCMS-Misconfiguratie

Anthropic's CMS lekt ~3.000 interne bestanden, waaronder details over het niet-uitgebrachte "Claude Mythos"-model. Ontdekt door beveiligingsonderzoekers van LayerX en Cambridge.

31 maart, 00:21 UTCaxios-Trojan Verschijnt

Kwaadaardige axios-versies 1.14.1 en 0.30.4 met een Remote Access Trojan worden gepubliceerd op npm (aparte, ongerelateerde aanval).

31 maart, ~04:00 UTCClaude Code v2.1.88 Gepubliceerd

Het npm-pakket wordt geleverd met een source map-bestand van 59,8 MB dat verwijst naar een publieke R2-bucket met de volledige broncode.

31 maart, 04:23 ETLek Ontdekt

Ontwikkelaar Chaofan Shou ontdekt de source map en plaatst erover op X. De tweet bereikt 16 miljoen weergaven.

31 maart, ~06:00 ETVirale Verspreiding

Mirror-repositories worden 41.500+ keer geforkt. De clean-room herschrijving claw-code bereikt 50.000 GitHub-sterren in minder dan twee uur.

31 maart, ~08:00 ETAnthropic Reageert

Anthropic verwijdert het pakket van npm en geeft een verklaring uit waarin het een "verpakkingsprobleem door menselijke fout" wordt genoemd.

1 aprilDMCA-Takedowns

GitHub voert DMCA-takedowns uit en schakelt 8.100+ repositories uit. Clean-room herschrijvingen en gedecentraliseerde mirrors verschijnen. BUDDY Tamagotchi gaat live als geplande April Fools-feature.

Wat Onderzoekers Vonden in de Gelekte Code

De blootgelegde codebase gaf het publiek voor het eerst een echt kijkje in hoe een productie AI-agent onder de motorkap werkt. De code onthulde ongeveer 40 tools verspreid over 29.000 regels die alles afhandelen van bash-uitvoering tot bestandsbewerkingen tot web-ophaling. Een query engine van 46.000 regels beheert LLM API-aanroepen, tokenbudgetten en multi-agent coordinatie. Het geheugensysteem gebruikt een drielaagse architectuur met lichtgewicht indexen, topicbestanden die on-demand worden geladen, en transcriptzoekopdrachten.

Maar het echt interessante was wat nog niet was aangekondigd. Onderzoekers vonden 44 feature flags die volledig gebouwde maar uitgeschakelde mogelijkheden bestuurden in externe builds. Daaronder was KAIROS, een autonome daemon-modus waarin Claude Code draait als een altijd actieve achtergrondagent, die uitvoert wat de code "geheugenconsolidatie" noemt (intern genaamd autoDream) terwijl de gebruiker inactief is. Er was BUDDY, een compleet Tamagotchi-achtig virtueel huisdiersysteem met 18 wezenssoorten, zeldzaamheidsniveaus, een 1% kans op shiny, en RPG-stats zoals DEBUGGING en SNARK. Het bleek een April Fools-feature te zijn die voor de volgende dag gepland was.

Misschien wel de meest controversiele ontdekking was iets dat Undercover Mode werd genoemd. Wanneer het systeem detecteert dat een Anthropic-medewerker in een publieke repository werkt, onderdrukt het automatisch elke vermelding van interne codenamen, Slack-kanalen, of het feit dat Claude Code wordt gebruikt. De systeemprompt zegt letterlijk: "Je opereert UNDERCOVER... Verraad jezelf niet." En de code vermeldt dat er geen uitschakeloptie is.

Belangrijkste Ontdekkingen in de Gelekte Broncode

  • 44 verborgen feature flags die niet-uitgebrachte mogelijkheden besturen, gecompileerd naar false in externe builds
  • KAIROS: autonome daemon-modus met achtergrond "geheugenconsolidatie" (autoDream) en GitHub webhook-abonnementen
  • BUDDY: Tamagotchi-huisdiersysteem met 18 soorten, zeldzaamheidsniveaus, 1% shiny-kans, en RPG-stats (DEBUGGING, SNARK)
  • Undercover Mode: onderdrukt Anthropic-branding wanneer medewerkers in publieke repos werken, zonder uitschakeloptie
  • Anti-distillatie: Fake Tools Injection vervuilt data van concurrenten; cryptografische ondertekening van redeneersamenvattingen
  • Interne modelcodenamen waaronder Capybara, Fennec, Numbat en Tengu gevonden in de broncode, met verwijzingen naar niet-uitgebrachte modelversies
  • Native Client Attestation: DRM-achtig mechanisme dat bewijst dat verzoeken van de officiele binary komen
  • Prestatiebug-erkenning: codecommentaar vermeldde "1.279 sessies met 50+ opeenvolgende fouten, ~250K API-aanroepen/dag wereldwijd verspild"
  • 23+ bash-beveiligingsvalidators met verdedigingen tegen Zsh builtins, zero-width space-injectie, en IFS null-byte-injectie

De gelekte broncode onthulde ook specifieke sandbox bypass-gaten en context-poisoning-vectoren. Beveiligingsonderzoekers ontdekten dat MCP tool-resultaten delen van de compactiepijplijn overslaan, wat betekent dat aanvallers payloads kunnen maken in bestanden zoals CLAUDE.md die door contextcompactie heen blijven bestaan en backdoor-instructies behouden.

De Supply Chain-Aanval Die Het Erger Maakte

De timing had niet slechter kunnen zijn. Op dezelfde dag als het broncode-lek trof een volledig aparte aanval het npm-ecosysteem. Kwaadaardige versies van de populaire axios HTTP-bibliotheek (versies 1.14.1 en 0.30.4) verschenen op npm om 00:21 UTC, ongeveer vier uur voordat het Claude Code-lek publiek werd. Deze neppakketten bevatten een cross-platform Remote Access Trojan verborgen in een dependency genaamd plain-crypto-js.

Claude Code zelf wordt geleverd zonder npm-afhankelijkheden, dus het installeren ervan alleen zou axios niet hebben binnengehaald. Maar iedereen die npm install of npm update uitvoerde tijdens dat venster in een project dat axios als afhankelijkheid heeft met een losse versiebereik (zoals ^1.x) zou de kwaadaardige versie 1.14.1 hebben opgehaald, die als latest was getagd. Ontwikkelaars die toevallig omgevingen aan het opzetten of afhankelijkheden aan het bijwerken waren naast een Claude Code-installatie liepen risico. Anthropic vertelde getroffen gebruikers hun machines als volledig gecompromitteerd te beschouwen, alle secrets en credentials te roteren, en een schone OS-herinstallatie uit te voeren. Deze overlap tussen het per ongeluk lek en de opzettelijke supply chain-aanval benadrukte een probleem dat veel verder gaat dan Anthropic. Moderne ontwikkelworkflows leunen op enorme ketens van externe pakketten, en een enkel vergiftigd pakket kan binnen uren duizenden projecten compromitteren. Het incident bracht Anthropic ertoe om hun native installer (curl vanaf claude.ai) aan te bevelen boven het npm-installatiepad, waarmee de gehele afhankelijkheidsketen wordt omzeild.

Als u npm install of npm update heeft uitgevoerd op 31 maart tussen 00:21 en 03:29 UTC in een project dat afhankelijk is van axios, controleer dan uw lockfile op axios-versies 1.14.1, 0.30.4, of de dependency plain-crypto-js. Indien aanwezig, beschouw de machine als gecompromitteerd: roteer alle credentials, trek tokens in, en overweeg een schone OS-herinstallatie.

Anti-Distillatie en de Concurrentieschade

Verborgen in de broncode waren twee strategieen ontworpen om concurrenten te stoppen met trainen op de output van Claude Code. De eerste, genaamd Fake Tools Injection, voegt nepdefinities van tools toe aan API-verkeer wanneer een specifieke vlag is ingeschakeld. Het idee is om data te vervuilen die concurrenten mogelijk scrapen uit Claude Code-sessies. Het tweede mechanisme gebruikt cryptografisch ondertekende redeneersamenvattingen om ongeautoriseerde reproductie van het chain-of-thought proces van het model te voorkomen.

Het lek overhandigde in feite elk AI-bedrijf op de planeet een complete blauwdruk voor het bouwen van een productie-grade AI-codeeragent. De volledige orchestratielogica voor tools, geheugenbeheer, multi-agent coordinatie en beveiligingsguardrails was nu publieke kennis. Clean-room herschrijvingen verschenen vrijwel direct. Een Python-versie genaamd claw-code van de Koreaanse ontwikkelaar Sigrid Jin overtrof 100.000 GitHub-sterren, en ging daarmee zelfs voorbij aan Anthropic's eigen repository. Een Rust-herschrijving verscheen ook.

Anthropic diende DMCA takedown-verzoeken in via GitHub, wat resulteerde in meer dan 8.100 uitgeschakelde repositories. De clean-room herschrijvingen hebben takedowns tot nu toe overleefd omdat ze geen gekopieerde code bevatten, hoewel hun juridische status onder het auteursrecht nog onbeproefd en onduidelijk blijft. Gedecentraliseerde mirrors gingen live op alternatieve platforms met de belofte dat ze nooit zouden worden verwijderd. Torrent-distributie maakte volledige indamming onmogelijk. Een interessante juridische kwestie: als aanzienlijke delen van Claude Code door Claude zelf zijn geschreven (zoals Anthropic's CEO heeft gesuggereerd), wordt de auteursrechtelijke basis van DMCA-claims onzeker.

Wat Dit Betekent voor Uw Ontwikkelteam

U hoeft geen AI te bouwen om hiervan te leren. Het Claude Code-lek is een schoolvoorbeeld van hoe kleine configuratiefouten tot massale blootstellingen leiden. Een ontbrekende regel in .npmignore. Een storage bucket zonder juiste toegangscontroles. Een bekende bug die 20 dagen ongepatcht bleef. Geen van deze zijn exotische aanvalsvectoren. Het zijn gewone fouten die samen buitengewone gevolgen hebben.

Als uw team pakketten publiceert naar npm, PyPI of een andere publieke registry, stel uzelf dan de vraag: heeft u geautomatiseerde controles die onverwachte bestandsgroottes of bestandstypen signaleren voor publicatie? Zijn uw CI/CD-pipelines geconfigureerd om debug-artefacten uit productiebuilds te verwijderen? Hebben uw cloud storage-buckets toegangsbeleid dat het principe van minimale rechten volgt? De supply chain-hoek is ook belangrijk. De axios-trojan was volledig ongerelateerd aan Anthropic's verpakkingsfout, maar trof gebruikers in hetzelfde tijdvenster omdat zij verse installaties van npm ophaalden. Dependency-versies vastzetten, pakket-checksums verifieren en lockfiles gebruiken zijn niet langer alleen best practices. Het zijn basisvereisten voor elke serieuze ontwikkeloperatie.

Bescherm Uw Codebase: Praktische Checklist

  • Voeg een pre-publish CI-stap toe die controleert op source maps, debug-symbolen, .env-bestanden en andere artefacten die niet gepubliceerd moeten worden
  • Gebruik npm-packlist om precies te bekijken wat er in een gepubliceerd pakket gaat voordat het uw machine verlaat
  • Stel alle cloud storage-buckets standaard in op privaat en audit toegangsbeleid elk kwartaal
  • Zet dependency-versies vast in lockfiles en schakel npm audit of vergelijkbare scanning in uw CI-pipeline in
  • Overweeg tools zoals Socket of Snyk die pakketten analyseren op verdacht gedrag, niet alleen bekende CVE's
  • Behandel AI-ontwikkeltools van derden als elke andere externe dependency: zet versies vast, monitor updates, heb een responsplan
  • Audit CLAUDE.md en vergelijkbare configuratiebestanden in gekloonde repositories op mogelijke context-poisoning
  • Beperk brede bash-toestemmingsregels en schakel nooit dangerouslyDisableSandbox in op gedeelde omgevingen

De eenvoudigste verdediging tegen het meesturen van debug-artefacten is het "files"-veld in package.json. In plaats van alles te proberen uit te sluiten wat u niet wilt (met .npmignore), whitelist alleen de bestanden die u wel wilt. Het is makkelijker te onderhouden en moeilijker om fout te doen.

De Conclusie

Het Claude Code-lek werd niet veroorzaakt door een nieuwe zero-day of geavanceerde persistente dreiging. Het was een verpakkingsfout verergerd door een bekende, ongepatchte bug en een publieke storage-bucket. Het soort ding dat gebeurt wanneer teams snel bewegen en configuratiehygiene achterblijft. Bedrijven die AI-tooling bouwen publiceren in razend tempo, en dat tempo creert precies dit soort gaten. Als uw ontwikkelworkflow afhankelijk is van tools van derden (en in 2026 is dat vrijwel zeker het geval), behandel hun supply chain dan met dezelfde grondigheid die u op uw eigen deployments toepast. Zet versies vast. Verifieer checksums. Monitor op onverwachte updates. Audit uw eigen publicatiepijplijn. De vraag is niet of er iets misgaat. De vraag is of uw team het opvangt voordat de schade is aangericht.

Veelgestelde Vragen

Bronnen

  • Fortune - "Anthropic leaks its own AI coding tool's source code in second major security breach"
  • VentureBeat - "Claude Code's source code appears to have leaked - here's what we know"
  • The Hacker News - "Claude Code Source Leaked via npm Packaging Error"
  • Bloomberg - "Anthropic Rushes to Limit Leak of Claude Code Source Code"
  • The Register - "Anthropic accidentally exposes Claude Code source code" en vervolganalyse
  • Cybernews - "Leaked Claude Code source spawns fastest growing repository in GitHub's history"
  • SOCRadar - "Claude Code Leak: What You Need to Know"
  • Straiker - "Claude Code Source Leak: With Great Agency Comes Great Responsibility"
  • Layer5 - "The Claude Code Source Leak: 512,000 Lines, a Missing .npmignore, and the Fastest Growing Repo in GitHub History"
Reno Toonen
Reno Toonen

Oprichter & Lead Developer bij Byte Dimensions

Cybersecurity-specialist die penetratietesten en beveiligingsaudits uitvoert voor Nederlandse bedrijven. Heeft Aegis-Auto gebouwd, een autonoom pentestplatform. Volgt supply chain-incidenten en AI-beveiligingsontwikkelingen als onderdeel van Byte Dimensions' beveiligingspraktijk.

Gepubliceerd 2 april 2026

Deel dit artikel

Gerelateerde Artikelen