1. April 2026 | Artikel drucken |

Source Map im NPM-Paket: Wie Anthropic 512.000 Zeilen Produktionscode exponierte

7 Min. Lesezeit

Eine fehlende Ausschlussregel in der Build-Pipeline legte am 31. März 2026 den vollständigen Produktionscode von Anthropics Claude Code offen. 512.000 Zeilen TypeScript, verpackt in einer 59,8 MB großen Source-Map-Datei im öffentlichen NPM-Paket. Am selben Tag traf ein unabhängiger Supply-Chain-Angriff das NPM-Paket axios – eines der meistgenutzten JavaScript-Pakete weltweit. Zwei unterschiedliche Vorfälle, ein Ökosystem, ein Tag. Zusammen illustrieren sie, warum NPM-Supply-Chain-Sicherheit für IT-Teams 2026 kein Randthema mehr ist.

Das Wichtigste in Kürze

  • NPM-Paket @anthropic-ai/claude-code v2.1.88 enthielt eine 59,8 MB große Source-Map-Datei mit dem vollständigen TypeScript-Quellcode – Ursache: fehlende .npmignore-Regel in der Build-Pipeline.
  • CWE-Klassifizierung: CWE-215 (Information Exposure Through Debug Information) und CWE-538 (Insertion of Sensitive Information into Externally-Accessible File).
  • Vor dem Leak waren bereits sechs CVEs in Claude Code dokumentiert, darunter API-Key-Leakage und Sandbox-Bypasses.
  • Am selben Tag: Supply-Chain-Angriff auf axios (v1.14.1 und v0.30.4) mit eingebettetem Remote Access Trojan über die Fake-Abhängigkeit plain-crypto-js.
  • Anthropic: „Verpackungsfehler durch menschliches Versagen, kein Sicherheitsvorfall.“ Keine Kundendaten betroffen.

Der Vorfall

Am 31. März 2026, 08:23 UTC, veröffentlichte Chaofan Shou seinen Fund auf X. Shou ist Doktorand an der UC Berkeley, Mitgründer des Blockchain-Security-Startups Fuzzland und Bug-Bounty-Forscher mit 1,9 Millionen US-Dollar an dokumentierten Schwachstellenmeldungen. Sein Befund: Version 2.1.88 des offiziellen NPM-Pakets @anthropic-ai/claude-code enthielt die Datei cli.js.map. Diese 59,8 MB große Source-Map-Datei enthielt im sourcesContent-Feld den vollständigen TypeScript-Quellcode – rund 1.900 Dateien mit 512.000 Zeilen Produktionscode.

Die Source Map verwies zusätzlich auf ein ZIP-Archiv auf einem öffentlich zugänglichen Cloudflare-R2-Bucket von Anthropic. Innerhalb von Stunden spiegelte die Community den Code auf GitHub. Das prominenteste Repository erreichte über 41.500 Forks. Anthropic reagierte mit DMCA-Notices; GitHub deaktivierte 8.100+ Repositories im Fork-Netzwerk. Der Code ist auf dezentralen Plattformen weiterhin verfügbar.

59,8 MB
Größe der Source-Map-Datei cli.js.map im NPM-Paket @anthropic-ai/claude-code v2.1.88
Quelle: NPM Registry, 31.03.2026

Die wahrscheinliche Ursache: Anthropic nutzt Bun als JavaScript-Runtime. Ein offener Bun-Bug (gemeldet 11. März 2026) dokumentiert, dass Buns Bundler Source Maps standardmäßig generiert – auch im Produktionsmodus, entgegen der Dokumentation. Weder .npmignore noch das files-Feld in package.json schlossen .map-Dateien aus.

Es war nicht der erste Vorfall dieser Art: Bereits 2025 enthielten die Claude-Code-Versionen v0.2.8 und v0.2.28 Source-Map-Dateien. Wenige Tage vor dem aktuellen Leak waren zudem rund 3.000 interne Anthropic-Dateien in einem öffentlich zugänglichen Cache aufgetaucht.

Anthropics offizielle Stellungnahme: „Ein Release-Verpackungsfehler durch menschliches Versagen, kein Sicherheitsvorfall.“ Version 2.1.88 wurde zurückgezogen, Version 2.1.89 veröffentlicht.

Source Maps als unterschätzter Angriffsvektor

Source Maps sind JSON-Dateien, die kompilierten oder minifizierten JavaScript-Code auf den Originalquellcode zurückmappen. Ihr sourcesContent-Feld enthält den vollständigen lesbaren Quelltext. Sie sind ein legitimes Debugging-Werkzeug – in Entwicklungsumgebungen. In Produktionspaketen werden sie zum Sicherheitsrisiko.

Tools wie reverse-sourcemap, Shuji oder unwebpack-sourcemap rekonstruieren aus einer einzigen .map-Datei die komplette Verzeichnisstruktur mit lesbarem Quellcode. Kein Reverse Engineering nötig, kein Decompiler, kein besonderes Fachwissen. Die Datei auspacken reicht.

Im Fall von Claude Code wurden offengelegt: das gesamte vierstufige Berechtigungsmodell, die Bash-Validierungslogik, OAuth-2.0-Authentifizierungsflows, die MCP-Server-Architektur (Model Context Protocol) und 44 Feature-Flags für unveröffentlichte Funktionen. Darunter ein Anti-Distillation-Mechanismus, der gefälschte Tool-Definitionen in API-Anfragen injiziert, um Trainingsdaten abfangender Konkurrenten zu vergiften. Und ein „Undercover Mode“, der sämtliche Anthropic-Referenzen entfernt, wenn das Tool in öffentlichen Repositories arbeitet.

Keine Kundendaten. Keine API-Keys. Aber das vollständige geistige Eigentum an der Agenten-Architektur – das Ergebnis tausender Entwicklungsstunden eines Unternehmens mit einer Bewertung von geschätzt 380 Milliarden US-Dollar.

Das Problem beschränkt sich nicht auf Anthropic. Source Maps in Produktionspaketen sind ein branchenweites Risiko. Eine Untersuchung von Ostorlab kam zu dem Ergebnis, dass rund fünf Prozent der untersuchten Web-Assets über Source-Map-basierte Schwachstellen angreifbar waren. Der Unterschied: Die meisten betroffenen Organisationen wissen nicht, dass ihre .map-Dateien öffentlich zugänglich sind.

„The irony is unreal – Anthropic markets Claude’s code-writing capabilities, yet their own code leaked due to a basic packaging mistake.“
– Community-Reaktion auf Hacker News, 31.03.2026

CWE-Klassifizierung und bekannte Schwachstellen

Der Source-Map-Leak fällt primär unter zwei CWE-Kategorien:

CWE-215 (Information Exposure Through Debug Information): Debug-Artefakte in Produktionsauslieferungen exponieren interne Implementierungsdetails.

CWE-538 (Insertion of Sensitive Information into Externally-Accessible File or Directory): Sensible Informationen in einer Datei, die für externe Akteure zugreifbar ist.

Ergänzend greifen CWE-540 (Inclusion of Sensitive Information in Source Code), CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor) und OWASP A01:2021 (Broken Access Control).

Vor dem Source-Map-Leak waren bereits sechs CVEs in Claude Code dokumentiert:

CVE-2026-21852
API-Key-Leakage über ANTHROPIC_BASE_URL in manipulierten Repos

CVE-2025-58764
Befehlsanalyse umging Genehmigungsdialoge

CVE-2025-52882
IDE-Integrationen akzeptierten WebSocket-Verbindungen beliebigen Ursprungs

Dazu kommen CVE-2025-59828 (Yarn-Konfigurationsausführung vor Vertrauensdialog), CVE-2025-64755 (Sed-Parsing umging Read-Only-Validierung) und die von Check Point Research dokumentierten Angriffsvektoren über manipulierte Projektkonfigurationen.

Das Muster ist deutlich: KI-gestützte Entwicklungstools, die Dateien lesen, Befehle ausführen und Netzwerkzugriff haben, sind vollwertige Angriffsflächen – unabhängig vom Hersteller. Der geleakte Quellcode zeigt immerhin, dass Anthropic das Problem erkennt: Ein CLAUDE_CODE_SUBPROCESS_ENV_SCRUB-Flag wurde eingeführt, um die Vererbung von Umgebungsvariablen (und damit potenziell API-Keys) an Subprozesse zu unterbinden. Dass dieses Flag erst nachträglich hinzugefügt wurde, bestätigt jedoch, dass die Security-Architektur reaktiv statt proaktiv gewachsen ist.

Am selben Tag: Der axios-Supply-Chain-Angriff

Unabhängig vom Claude-Code-Leak traf am 31. März 2026 ein Supply-Chain-Angriff das NPM-Paket axios – mit 83 Millionen wöchentlichen Downloads eines der meistgenutzten JavaScript-Pakete weltweit. Die Versionen 1.14.1 und 0.30.4 enthielten über eine Fake-Abhängigkeit namens plain-crypto-js einen Remote Access Trojan. Der Angriff war zwischen 00:21 und 03:29 UTC aktiv, bevor npm das Paket entfernte.

Der zeitliche Zusammenhang ist relevant: Wer in diesem Zeitfenster Claude Code über npm installierte oder aktualisierte, könnte die kompromittierte axios-Version als transitive Abhängigkeit mitinstalliert haben. Zwei unabhängige Supply-Chain-Probleme, ein Ökosystem, ein Tag. Der axios-Angriff wurde von SANS, Sophos und BleepingComputer unabhängig bestätigt und der UNC1069-Gruppe (Nordkorea-Verbindung) zugeordnet.

Der Vorfall reiht sich in eine Chronik ein, die IT-Sicherheitsteams kennen sollten: event-stream (2018), ua-parser-js (2021), colors.js (2022), der Astro-Angriff über Shai-Hulud (2024) und jetzt axios (2026). Das NPM-Ökosystem mit seinen tief verschachtelten Abhängigkeitsketten bleibt eine der kritischsten Angriffsflächen in der Softwareentwicklung. Jede transitive Abhängigkeit ist ein potenzieller Angriffsvektor – und die meisten Teams kennen nicht einmal ihren vollständigen Abhängigkeitsbaum.

Was IT-Teams jetzt prüfen sollten

Fünf konkrete Maßnahmen, die sich aus dem Vorfall ableiten:

1. Package-Audit auf Source Maps. npm pack –dry-run auf allen intern veröffentlichten Paketen ausführen. Prüfen, ob .map-Dateien, .env-Dateien oder andere Debug-Artefakte im Artefakt enthalten sind. Das dauert 30 Sekunden pro Paket und hätte den Claude-Code-Leak verhindert.

2. Whitelist-Ansatz statt Blacklist. In package.json ein files-Feld als Whitelist definieren, statt sich auf .npmignore (Blacklist) zu verlassen. Blacklists vergessen neue Dateitypen. Whitelists schließen nur explizit Freigegebenes ein.

3. Bundler-Konfiguration prüfen. Build-Tools wie Bun, esbuild und webpack generieren Source Maps oft standardmäßig. Für Produktions-Builds explizit deaktivieren: –sourcemap=none (Bun), –sourcemap=false (esbuild) oder devtool: false (webpack).

4. CI/CD-Gate einbauen. Eine automatisierte Prüfung in der Pipeline, die den Build abbricht, wenn .map-Dateien, .env-Dateien oder andere Ausschlussmuster im Veröffentlichungsartefakt gefunden werden. Einfacher Check: find dist/ -name „*.map“ -exec false {} +.

5. Provenance Attestation nutzen. npm publish –provenance erstellt eine kryptographisch signierte Attestation, die den Build reproduzierbar an einen konkreten Commit und eine CI-Umgebung bindet. Das hätte den Vorfall nicht verhindert, macht aber Manipulation nachvollziehbar.

6. KI-Entwicklertools als Angriffsfläche behandeln. Tools wie Claude Code, GitHub Copilot und Cursor haben Dateisystemzugriff, führen Befehle aus und kommunizieren mit externen APIs. Sie verdienen dasselbe Sicherheitsaudit wie jede andere Software mit privilegiertem Zugriff. Die sechs dokumentierten CVEs in Claude Code zeigen: Diese Tools sind nicht immun gegen Schwachstellen, die in jeder anderen Anwendungsklasse längst Standard-Prüfpunkte wären.

Häufige Fragen

Wurden Kundendaten oder API-Keys exponiert?

Nein. Anthropic und unabhängige Sicherheitsanalysen (Penligent) bestätigen: Keine Kundendaten, keine API-Keys, keine Zugangsdaten. Exponiert wurde der Anwendungscode der Claude-Code-CLI – also Architektur, Logik und Feature-Flags, nicht operative Geheimnisse.

Wie unterscheidet sich dieser Vorfall von einem Supply-Chain-Angriff?

Der Claude-Code-Leak war ein unbeabsichtigter Konfigurationsfehler (CWE-215) – kein gezielter Angriff. Der axios-Vorfall am selben Tag war hingegen ein absichtlicher Supply-Chain-Angriff mit eingeschleustem Schadcode. Beide zeigen unterschiedliche Facetten desselben Problems: NPM-Pakete als Angriffsvektor.

Welches Risiko besteht für Claude-Code-Nutzer?

Das direkte Risiko durch den Source-Map-Leak ist gering – der exponierte Code enthielt keine Geheimnisse. Kritischer: Wer Claude Code zwischen 00:21 und 03:29 UTC am 31. März installierte, könnte die kompromittierte axios-Version als transitive Abhängigkeit erhalten haben. Ein npm audit und Prüfung der axios-Version ist empfehlenswert.

War das der erste Vorfall dieser Art bei Anthropic?

Nein. Bereits 2025 enthielten die Claude-Code-Versionen v0.2.8 und v0.2.28 Source-Map-Dateien. Wenige Tage vor dem aktuellen Leak waren zudem rund 3.000 interne Dateien in einem öffentlich zugänglichen Cache aufgetaucht – darunter Details zu einem unveröffentlichten KI-Modell. Drei Vorfälle mit derselben Grundursache (.npmignore-Fehler) deuten auf ein systemisches Problem in der Release-Pipeline hin.

Wie prüfe ich meine eigenen NPM-Pakete?

Vier Schritte: 1) npm pack –dry-run zeigt alle Dateien, die im Paket landen würden. 2) package.json files-Feld als Whitelist konfigurieren. 3) Bundler-Source-Maps für Production deaktivieren. 4) CI-Gate einbauen, das den Build bei .map-Dateien im Artefakt abbricht.

Lesetipps der Redaktion

Mehr aus dem MBF Media Netzwerk

Quelle Titelbild: Pexels / Towfiqu barbhuiya (px:11391947)

Benedikt Langer

Hier schreibt Benedikt Langer für Sie

Mehr Artikel vom Autor

Auch verfügbar in

FrançaisEspañolEnglish
Ein Magazin der Evernine Media GmbH