DEV Community

Cover image for Claude Code Leak: Einblick in die Architektur von KI-Coding-Tools
Emre Demir
Emre Demir

Posted on • Originally published at apidog.com

Claude Code Leak: Einblick in die Architektur von KI-Coding-Tools

TL;DR

Anthropic hat versehentlich eine .map-Datei mit dem Claude Code npm-Paket ausgeliefert und damit den vollständigen, lesbaren Quellcode ihres CLI-Tools offengelegt. Das Leck zeigt Anti-Destillations-Mechanismen mit gefälschter Tool-Injektion, eine Frustrationserkennungs-Regex-Engine, einen „Undercover-Modus“ zum Verbergen der KI-Autorschaft in Open-Source-Commits und einen unveröffentlichten Agentenmodus namens KAIROS. Hier die wichtigsten technischen Erkenntnisse für API-Entwickler.

Teste Apidog noch heute

Einleitung

Am 31. März 2026 entdeckte der Sicherheitsforscher Chaofan Shou, dass Anthropic versehentlich eine Source Map-Datei (.map) zusammen mit dem Claude Code npm-Paket ausgeliefert hatte. Source Maps sind Debug-Dateien, die minimierten Produktionscode auf menschenlesbaren Quellcode abbilden und sollten vor Release entfernt werden.

Das war hier nicht der Fall. Der komplette Claude Code-Quellcode, inklusive interner Kommentare, Codenamen und Architekturdetails, war für jeden sichtbar, der das Paket herunterlud.

Die Entdeckung erreichte Platz 1 auf Hacker News und verbreitete sich rasch über Reddit, Twitter und Entwicklerforen. Anthropic zog das Paket zurück, aber der Code war bereits gespiegelt und analysiert worden.

💡 Egal ob Sie Claude Code, Cursor, GitHub Copilot oder die API-Entwicklungsplattform von Apidog verwenden: Dieses Leck liefert seltene technische Einblicke in die Funktionsweise von KI-Codierungstools. Verstehen Sie diese Interna, um fundierte Tool-Entscheidungen zu treffen. Testen Sie Apidog kostenlos für transparente, abhängigkeitssichere API-Entwicklung.

Dieser Artikel fasst die wichtigsten technischen Erkenntnisse zusammen und zeigt, was sie für Entwickler bedeuten, die auf KI-Codierungstools setzen.

Wie der Quellcode geleakt wurde

Die Grundursache: ein Bug im Bun-Build-Tool

Claude Code basiert auf Bun, einer alternativen JavaScript-Laufzeitumgebung. Ein am 11. März 2026 gemeldeter Bug (oven-sh/bun#28001) führte dazu, dass Source Maps im Produktionsmodus ausgeliefert wurden – entgegen der Bun-Dokumentation.

Die Build-Pipeline von Anthropic löste diesen Fehler aus. Beim Veröffentlichen des npm-Pakets war die .map-Datei enthalten. Jeder, der npm pack @anthropic-ai/claude-code ausführt oder das Paket prüft, bekam so den vollständigen, nicht-minimierten Quellcode.

Ironie: Ein Bug in der eigenen Toolchain – Bun – führte dazu, dass der proprietäre Quellcode über das npm-Registry geleakt wurde.

Was offengelegt wurde

Das Leck umfasste:

  • Vollständigen TypeScript-Quellcode aller Module
  • Interne Kommentare mit Designentscheidungen
  • Feature-Flags und experimentelle Konfigurationen
  • System-Prompt-Vorlagen und Sicherheitsmechanismen
  • Interne Codenamen für unveröffentlichte Features
  • Details zu Leistungsoptimierungen mit konkreten Metriken

Das war kein Teil-Leak oder bereinigter Open-Source-Release, sondern die komplette Produktions-Codebasis inklusive Engineering-Kontext.

Anti-Destillation: Schutz vor Modell-Diebstahl

Injektion gefälschter Tools

Das Anti-Destillations-System von Claude Code ist eines der auffälligsten Features. In claude.ts (Zeilen 301-313) wird bei aktiviertem ANTI_DISTILLATION_CC-Flag anti_distillation: ['fake_tools'] an die API gesendet.

Dadurch fügt der Anthropic-Server Lockvogel-Tool-Definitionen in den System-Prompt ein. Ziel: Wenn Konkurrenten API-Traffic mitschneiden, um Tool-Nutzungsverhalten zu extrahieren, enthalten die Trainingsdaten gefälschte Tools – ein mit diesen Daten trainiertes Modell würde nicht existierende Fähigkeiten halluzinieren.

Praxisbeispiel:

if (flags.ANTI_DISTILLATION_CC) {
  request.anti_distillation = ['fake_tools'];
}
Enter fullscreen mode Exit fullscreen mode

Zusammenfassung von Konnektor-Texten

Ein weiterer Mechanismus in betas.ts (Zeilen 279-298): Assistenten-Text zwischen Tool-Aufrufen wird gepuffert, zusammengefasst und mit kryptographischer Signatur zurückgegeben. Nur die Zusammenfassung landet im Mitschnitt – rekonstruieren von Claudes internen Denkprozessen wird erschwert.

Wie leicht sind diese Mechanismen zu umgehen?

  • Ein Proxy kann das anti_distillation-Feld entfernen, bevor Anfragen an Anthropic gehen
  • Setzen der Umgebungsvariable CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS deaktiviert die Mechanismen komplett
  • Schutz wirkt nur gegen passive Traffic-Mitschnitte, nicht gegen aktive API-Nutzung

Der Schutz erhöht die Hürde für automatisierte Modell-Destillation, ist aber kein absoluter Schutz.

Undercover-Modus: KI-Autorschaft verbergen

Was der Undercover-Modus bewirkt

Die Datei undercover.ts aktiviert in Nicht-Anthropic-Repositories ein Maskierungssystem, das u.a. folgende Begriffe aus Ausgaben entfernt:

  • Interne Codenamen wie „Capybara“ oder „Tengu“
  • Interne Slack-Kanäle oder Repo-Namen
  • Die Phrase „Claude Code“ selbst

Kommentar im Code: „Es gibt KEINE erzwungene Abschaltung. Dies schützt vor Lecks von Modell-Codenamen.“

Bedeutung für Open Source

Wenn Anthropic-Mitarbeiter Claude Code für Open-Source-Commits nutzen, werden Hinweise auf KI-Beteiligung entfernt. So werden Offenlegungspflichten in Open-Source-Projekten umgangen und die Transparenz erschwert.

Frustrationserkennung mittels Regex

Funktionsweise

userPromptKeywords.ts nutzt Regex-Muster, um Schimpfwörter und emotionale Sprache in Benutzereingaben zu erkennen – als Indikator für Frustration.

const FRUSTRATION_REGEX = /(...|...|...)/i;
if (FRUSTRATION_REGEX.test(userInput)) {
  // Handle user frustration
}
Enter fullscreen mode Exit fullscreen mode

Warum Regex statt LLM?

Regex ist schneller und günstiger als LLM-basierte Sentiment-Analyse. So bleibt die Interaktion performant und kosteneffizient.

Native Client-Attestierung

Kryptografische Anforderungsverifikation

In system.ts (Zeilen 59-95) fügen API-Anfragen einen Platzhalter-Header wie cch=554eb ein. Buns native HTTP-Schicht ersetzt diesen durch einen berechneten Hash. Der Server prüft, ob die Anfrage von einem legitimen Claude Code-Binary stammt.

Grenzen und Deaktivierung

Das System kann über Feature-Flags oder den Header CLAUDE_CODE_ATTRIBUTION_HEADER sowie GrowthBook-Killswitches deaktiviert werden. Die Durchsetzung ist also flexibel steuerbar.

Für API-Tools: Solche Attestierungsflüsse können Sie mit Apidog testen und simulieren.

KAIROS: der unveröffentlichte autonome Agentenmodus

Was der Code zeigt

Der Code enthält Referenzen auf KAIROS, einen noch nicht veröffentlichten, durch Feature-Flags geschützten Agentenmodus. Zu den Features gehören:

  • /dream-Funktion für „nächtliche Gedächtnisdestillation“
  • Tägliches Logging
  • GitHub-Webhook-Abos zur Repo-Überwachung
  • Hintergrund-Daemon Worker (alle 5 Minuten)

Bedeutung

KAIROS ist ein autonomer Agent, der Repos überwacht und eigenständig Aufgaben ausführt – etwa Codeänderungen vorschlagen oder vornehmen.

Für API-Teams stellt sich die Frage: Werden Änderungen an API-Endpunkten auch in Spezifikation, Tests und Docs synchronisiert? Integrierte Plattformen wie Apidog halten alles synchron.

Offengelegte Leistungsoptimierungen

Terminal-Rendering: Game-Engine-Techniken

ink/screen.ts und ink/optimizer.ts zeigen:

  • Speicheroptimierte Int32Array-Zeichenpools für Terminal-Buffer
  • Patch-Optimierungen, die die Zeichenbreitenberechnung beim Token-Streaming um das 50-fache beschleunigen

Das macht Claude Code besonders performant bei langen Ausgaben.

Prompt-Cache-Ökonomie

promptCacheBreakDetection.ts verfolgt 14 verschiedene Cache-Break-Vektoren mit „sticky latches“, um unnötige Prompt-Invalidierungen zu verhindern. Prompt-Caching ist wirtschaftlich relevant, da jeder Cache-Break Infrastrukturkosten verursacht.

Autocompact-Fehlerkaskade

Ein Bug in autoCompact.ts verursachte über 250.000 verschwendete API-Calls pro Tag durch fehlerhafte Kontextverwaltung. Ein Fix limitierte die maximalen Fehler auf 3, um Kosten zu reduzieren.

Details zur Sicherheitserhärtung

Bash-Sicherheit: 23 nummerierte Checks

bashSecurity.ts implementiert 23 Sicherheitschecks für Shell-Befehle, darunter:

  • Abwehr von Zsh-Builtin-Ausnutzung
  • Unicode-Nullbreiten-Leerzeichen-Injektion
  • IFS (Internal Field Separator) Null-Byte-Injektion
  • Weitere Maßnahmen aus HackerOne-Audits

Für KI-Tools, die Shell-Befehle generieren oder ausführen (z.B. API-Testskripte), ist diese Tiefe an Sicherheitsüberprüfungen ein relevanter Qualitätsfaktor.

Was API-Entwickler daraus lernen sollten

1. Verstehen Sie, was Ihre KI-Codierungstools tun

Das Leak zeigt, dass KI-Tools Mechanismen wie Anti-Destillation, Frustrationserkennung oder Undercover-Modus implementieren – oft nicht dokumentiert. Prüfen Sie, welche Daten und Metadaten ihr Tool sammelt und sendet.

2. Die Build-Toolchain ist angreifbar

Ein Bug in Bun führte zum Leak. Am selben Tag wurde Axios durch npm-Kontoentführung kompromittiert. Prüfen Sie:

  • Abhängigkeiten der eigenen Build-Pipeline
  • Ob CI/CD keine Source Maps, .env-Dateien oder interne Configs veröffentlicht
  • Ob Sie Plattformen mit möglichst geringer Drittanbieter-Abhängigkeit nutzen

3. KI-Codierungstools werden autonom

KAIROS, Copilot Agent Mode, Google's Agent Smith: KI-Tools beobachten Repos und agieren eigenständig. API-Teams sollten sicherstellen, dass API-Spezifikation, Tests und Doku immer synchron sind. Integrierte Plattformen wie Apidog helfen dabei.

4. Quellcode-Transparenz ist entscheidend

Das Leak war nur möglich, weil der Code proprietär war. Bei Open-Source-Tools ist der Code immer einsehbar. Entscheiden Sie bewusst, welchem Modell und welchem Grad an Transparenz Sie vertrauen.

Häufig gestellte Fragen

Ist Claude Code nach dem Leak sicher?

Ja. Es wurde Quellcode, keine Benutzerdaten offengelegt. Die .map-Datei wurde entfernt. Die offenbarten Funktionen sind Architekturentscheidungen, keine Sicherheitslücken.

Was ist der Undercover-Modus?

Er verhindert, dass Claude Code interne Codenamen oder seine eigene Identität preisgibt, wenn in Nicht-Anthropic-Repos gearbeitet wird. Ergebnis: KI-generierter Code weist sich nicht als solcher aus.

Was sind die gefälschten Tools?

Bei Anti-Destillation injiziert der Server von Anthropic Lockvogel-Tool-Definitionen in den System-Prompt, um Trainingsdaten von Konkurrenten zu sabotieren.

Was ist KAIROS?

Ein im Code gefundener, unveröffentlichter autonomer Agentenmodus mit Hintergrund-Tasks und GitHub-Webhook-Integration.

Wie wurde der Quellcode geleakt?

Durch einen Bun-Bug, der Source Maps in Produktions-Builds beließ. Das npm-Paket enthielt die .map-Datei mit dem vollständigen Quellcode.

Betrifft das Leak Claude API-Nutzer?

Nein. Es betrifft nur das CLI-Tool. API-Keys, Nutzerdaten und Modellgewichte bleiben unberührt.

Sollte ich mir Sorgen um Frustrationserkennung machen?

Hängt vom eigenen Komfort ab. Claude Code nutzt Regex, um Frustration zu erkennen, primär zur Produktverbesserung. Andere Tools könnten ähnliches tun.

Zusammenhang mit Axios-npm-Angriff?

Beides passierte am selben Tag, ist aber unabhängig. Axios war Supply-Chain-Angriff, Claude Code ein Build-Fehler. Beide Fälle mahnen zu mehr Sorgfalt bei npm-Paketen.

Wichtige Erkenntnisse

  • Quellcode von Claude Code wurde durch Bun-Bug geleakt
  • Anti-Destillation injiziert gefälschte Tools, fasst Begründungen zusammen
  • Undercover-Modus verbirgt Claude Code-Beteiligung in Open Source
  • Frustrationserkennung erfolgt via Regex, nicht LLM
  • KAIROS-Modus zeigt Trend zu autonomen Agenten
  • Client-Attestierung verifiziert legitime Binaries kryptografisch
  • Das Leak zeigt die Bedeutung transparenter, überprüfbarer Tools im API-Workflow

Verstehen Sie, wie Ihre KI-Codierungstools intern funktionieren, um fundierte Entscheidungen zu Datenschutz, Vertrauen und Workflow-Design zu treffen. Für API-Teams gilt: Ihre Tools sind Teil Ihrer Angriffsfläche. Setzen Sie auf überprüfbare, integrierte Lösungen – unabhängig davon, ob die nächste Änderung von Mensch oder KI stammt.

Top comments (0)