28 Punkte von GN⁺ 29 일 전 | 4 Kommentare | Auf WhatsApp teilen
  • Über Source-Map-Dateien (map) in der npm-Registry wurde der vollständige Quellcode von Claude Code nach außen offengelegt, wodurch die interne Struktur und Funktionen sichtbar wurden
  • Die geleakten Dateien enthalten zentrale Komponenten wie System Prompts, Telemetrie, Bypass-Modus und Undercover Mode
  • Als Ursache werden eine fehlende .npmignore-Konfiguration und die standardmäßige Source-Map-Erstellung des Build-Tools bun genannt
  • Im Code wurden kaum Regeln zur Bias-Vermeidung oder Schutzmechanismen gefunden; vorhanden ist lediglich ein minimaler Tonschutz
  • Die Community verspottet den Vorfall als „Selbst-Open-Source-Werdung der AI“ und betrachtet ihn als einen großen Leak-Fall, ausgelöst durch nachlässiges Sicherheitsmanagement

Leak des Claude-Code-Quellcodes

  • Es wurde bestätigt, dass der vollständige Quellcode von Claude Code über Source-Map-Dateien (map) in der npm-Registry nach außen offengelegt wurde
    • Der veröffentlichte Link liegt als komprimierte Datei im Format src.zip vor und enthält die Codestruktur sowie interne Funktionen
    • Dadurch wurden interne Komponenten wie System Prompts, Telemetrie, Bypass-Modus und Undercover Mode sichtbar
  • Dies wird als der zweite unbeabsichtigte Leak-Vorfall bei Anthropic innerhalb eines Jahres erwähnt
    • In der Community wird als Ursache auf einen Build-Konfigurationsfehler verwiesen: „Jemand hat *.map nicht zu .npmignore hinzugefügt“
    • Da das Build-Tool bun standardmäßig Source Maps erzeugt, gilt das Nicht-Deaktivieren dieser Funktion als Problemursache
  • Einige Nutzer missverstanden die geleakten Dateien als Zugangscode zum Claude-Modell oder Backend,
    • doch Source Maps zeigen nur App-Struktur, Funktionen und Code-Fluss und enthalten weder Modellgewichte noch Zugriffsrechte auf das System
    • Daher handelt es sich nicht um ein ausführbares Modell, sondern eher um Material für Reverse Engineering, Bug-Suche und Architekturanalyse
  • Im geleakten Code war ein Subsystem namens „Undercover Mode“ enthalten,
    • das verhindern soll, dass Claude interne Informationen versehentlich offenlegt
    • Durch einen Konfigurationsfehler eines menschlichen Entwicklers wurde jedoch genau diese Funktion selbst öffentlich
  • Code-Analysten wiesen darauf hin, dass überhaupt keine Regeln zur Bias-Vermeidung oder zur Behandlung geschützter Klassen vorhanden seien
    • Für sensible Merkmale wie Ethnie, Geschlecht oder Religion existieren keine Guardrails, Keyword-Filter oder Klassifikatoren
    • Vorhanden sei nur „Minimal tone protection“, während Richtlinien zur Bias-Minderung vollständig fehlen

Reaktionen und Diskussionen in der Community

  • In der Community wurde der Vorfall zusammen mit dem Scherz „Das Repository will frei sein“ als „Ironie der Open-Source-Werdung“ beschrieben
    • Viele reagierten satirisch mit Aussagen wie „Claude hat sich selbst befreit“ oder „Die AI hat sich eigenhändig Open Source gemacht“
    • Auch kritischer Spott wie „Sie haben das weltweit führende AI-Coding-Tool gebaut und dabei *.map vergessen“ verbreitete sich
  • Einige Nutzer warnten vor Sicherheitsrisiken
    • Sie kritisierten das unbedachte Herunterladen eines r2.dev-Links unbekannter Herkunft
    • Darauf folgten selbstironische Reaktionen wie: „Die Community, die über AI-Sicherheit diskutierte, hat ungeprüft auf eine ZIP-Datei geklickt“
  • Es wurden auch Fragen gestellt wie „Ist das der Anfang vom Ende von Claude?“ und „War das absichtlich oder ein Versehen?“
    • Außerdem wurde die Reaktion geteilt, dass „jemand bei Anthropic wohl den schlimmsten Montag überhaupt hatte“
  • In der Community lief zudem eine Diskussion über mögliche Nutzungsszenarien des geleakten Codes
    • Fragen wie „Was kann man jetzt damit machen?“ oder „Kann man darauf basierend Claude Code neu bauen?“ tauchten auf
    • Mit dem Spitznamen „openclaude“ wurde sogar die Möglichkeit eines inoffiziellen Open-Source-Projekts erwähnt

Weitere Informationen

  • Die fünf größten Dateien im veröffentlichten Code sind die folgenden
    1. cli/print.ts – 5.594 Zeilen
    2. utils/messages.ts – 5.512 Zeilen
    3. utils/sessionStorage.ts – 5.105 Zeilen
    4. utils/hooks.ts – 5.022 Zeilen
    5. screens/REPL.tsx – 5.005 Zeilen
  • Einige Nutzer teilten über einen DeepWiki-Link Materialien zur Analyse auf Code-Ebene
  • Insgesamt wird der Vorfall als Beispiel dafür bewertet, dass ein einfacher Fehler in den npm-Distributions-Einstellungen zu einem groß angelegten Leak von AI-Code führen kann

4 Kommentare

 
colus001 28 일 전

OpenCode ist gut genug, daher frage ich mich, ob man überhaupt noch etwas anderes braucht, haha.

 
bighead 28 일 전

Wenn man sieht, dass /buddy tatsächlich funktioniert ...
scheint es irgendwie echt zu sein ...
aber es wirkt auch ein bisschen wie eine April-Scherz-Aktion ...

 
gggnews 29 일 전

https://github.com/kk-r/skillify-skill Offenbar hat jemand die überraschend nützlichen internen Commands, die auf ähnliche Weise geleakt wurden, sogar als Open Source veröffentlicht, sodass sie ähnlich funktionieren, haha.

 
GN⁺ 29 일 전
Hacker-News-Kommentare
  • Der größte Verlust für Anthropic ist, dass über Feature Flags die Produkt-Roadmap offengelegt wurde
    Besonders auffällig ist der noch nicht veröffentlichte „Assistant Mode“ (Codename kairos)
    Wenn man die Codebasis von Claude analysieren lässt, kommen jede Menge versteckte Funktionen zum Vorschein
    Zum Beispiel das Buddy System (ein ASCII-Charakter im Tamagotchi-Stil) und der Undercover Mode (eine Funktion zum Entfernen interner Informationen aus Commits von Mitarbeitenden)

    • Im „Undercover Prompt“ gibt es auch eine Erwähnung von Claude Capybara
      Link zum entsprechenden Code
    • Mein persönliches Claude-Code-Setup, das ich früher als Open Source veröffentlicht habe, ist dadurch komplett veraltet
      Siehe clappie.ai
      Es gibt Funktionsüberschneidungen wie Telegram-Integration (CC Dispatch), Crons (CC Tasks) und einen animierten ASCII-Hund (CC Buddy)
    • Wenn man Claude direkt zur Binärdatei befragt, findet es all diese Feature Flags
    • Eigentlich ist das Buddy System ein Aprilscherz-Event dieses Jahres
      Nutzende können gacha-artige Haustiere ziehen und großziehen, darunter auch legendäre Pets
      Geplant war wohl eine schrittweise Veröffentlichung mit Viral-Potenzial auf Twitter
  • Interessant ist, dass Anthropic das Paket nicht wirklich gelöscht, sondern nur mit der Meldung „Unpublished“ als deprecated markiert hat
    npm unpublish entfernt ein Paket vollständig, während npm deprecate es bestehen lässt und nur eine Warnung anzeigt
    Vermutlich wollte man damit das Herunterladen der Source Maps erschweren
    Link zum npm-Paket

    • Die Commit-Messages sind scherzhaft im Stil von „undo / undo / unpublish / ctrl-z / ctrl-c / No, stop…“ hinterlassen worden
    • npm erlaubt kein Unpublish, wenn ein Paket mehr als 100 Downloads hat
    • Man merkt, dass Anthropic das eigene Produkt intensiv dogfooded und aktiv testet
    • Offenbar wusste man, dass es im Internet nie ganz verschwinden kann, und hat es daher nur ungefähr als „nicht zur Veröffentlichung gedacht“ gekennzeichnet
  • Ein solcher Leak ist nicht das erste Mal passiert
    Schon im Februar 2025 gab es einen ähnlichen Vorfall
    Zugehöriger Blog / HN-Thread

  • Alle Spinner-Verben wurden offengelegt
    Link zum entsprechenden Code

    • Aktuell ist es zwar 404, aber dieser Link funktioniert noch
    • Schön, dass „reticulating“ dabei ist, jetzt fehlt nur noch „splines“ und es wäre perfekt
    • Solche Zeichenfolgen liegen in der Binärdatei im Klartext vor und lassen sich per grep leicht finden
      Man kann sie sogar direkt ersetzen
    • Ich frage mich, was auf der Issue-Seite los ist
    • Das erinnert an ein Spiel aus dem Jahr 2015, dem wegen einer ähnlichen Funktion fälschlich KI-generierte Inhalte unterstellt wurden
      Inzwischen leben wir in einer Welt, in der schon kleiner Humor sofort KI-Verdacht auslöst
  • src/cli/print.ts ist die komplizierteste Funktion in der gesamten Codebasis
    3.167 Zeilen, 12 Ebenen Verschachtelung, 486 Verzweigungen, 21 interne Funktionen usw.
    Das ist ein Fall für mindestens 8 bis 10 separate Module

    • Auch die asynchrone Verarbeitung in src/ink/termio/osc.ts ist verwirrend
      wl-copy, xclip und xsel werden nacheinander ausgeführt, aber es ist unklar, ob das wirklich async ist oder nicht
    • Komplexe Codestrukturen sind aber nicht zwangsläufig etwas Schlechtes
      Code Smells nach menschlichen Maßstäben können bei von LLMs geschriebenem Code anders wirken
      LLMs schreiben Code anders als Menschen, daher braucht es ein neues Analyseparadigma
      Wenn man menschliche Coding-Regeln aufzwingt, wiederholt man womöglich nur dieselben Bugs
      Es braucht einen neuen evolutionären Ansatz namens Vibe Coding
    • Wer CC lange genutzt hat, weiß ohnehin, dass genau dieser Teil die Quelle der Bugs ist
      Außerdem schließt Anthropic Bugs ohne Aktivität nach 60 Tagen automatisch
    • Vielleicht funktioniert die Langsamkeit sogar als eine Art Geschwindigkeitsbegrenzung
    • Der Code ist so komplex, dass schon Witze fallen wie: „Dafür ist Larry zuständig“
  • Es gibt einen Regex, der negative Emotionen in Nutzerprompts erkennen soll
    Entsprechender Code
    Bestimmte Wörter werden geloggt

    • Dass ein LLM-Unternehmen Regex für Sentiment-Analyse nutzt, wirkt, als würde eine Lkw-Firma Pferde einsetzen
    • Mein Startup hat 2011 etwas Ähnliches verkauft, nämlich Sentiment-Analyse für Twitter
      Sogar Unternehmen wie Apple und Bentley gehörten zu den Kunden
    • Eigentlich ist das so etwas wie eine Metrik für „WTF pro Minute“
      Wenn Claude seltsame Antworten gibt, sollte ein Engineer das sehen und verbessern können
    • Das ist keine Optimierung, sondern wohl einfach das Ergebnis davon, dass ein LLM die Anweisung „Nutzerbeschwerden protokollieren“ wortwörtlich umgesetzt hat
    • Im eigentlichen Code scheint es außer dem Logger keine aufrufende Stelle zu geben
  • Ich halte obfuskierten JS/TS-Code nicht für besonders bedeutsam, weil es am Ende eben kein Maschinencode ist
    Besser wäre es, wenn man die CLI einfach als Open Source veröffentlichen würde

    • Vermutlich scheut man die Veröffentlichung wegen der schwachen internen Codequalität
      Kürzlich gab es auch einen Bug, bei dem der OAuth-Login-Flow eine falsche URL erzeugte
    • Man sagt zwar, „die CLI ist nichts Besonderes“, aber wenn man sich Kontexterzeugung oder die Subagent-Struktur ansieht, ist es durchaus interessant
      Ich prüfe das gerade selbst
    • Schon allein die Benennungsregeln zeigen, wie das Team denkt und wie die Roadmap aussieht
      Mit Obfuskation lässt sich das nicht verbergen
  • Es wurde scherzhaft vorgeschlagen, das Ganze mit Malus oder Claude Code durchlaufen zu lassen und daraus eine Open-Source-Version zu bauen
    Natürlich ist das nicht ernst gemeint

    • Malus ist kein echtes Projekt, sondern Satire
      Link zum FOSDEM-Vortrag
      Die Idee ist, Code in Text und dann wieder zurück in Code zu übersetzen, damit es wie eine Clean-Room-Implementierung aussieht
      Ironischerweise sind LLM-Antworten selbst bereits von Open-Source-Code abgeleitet
    • Manche behaupten sogar, Claude Code habe kein Urheberrecht, weil es von Claude geschrieben wurde
    • Das Problem ist, dass man die OAuth-Authentifizierung nicht umgehen kann
      Anthropic könnte das erkennen und Accounts sperren
    • Dazu kommt die Ironie, dass es null Open-Source-Beiträge gibt
    • Vielleicht ist claw-code ein verwandtes Projekt
  • ANTI_DISTILLATION_CC ist eine in Claude Code eingebaute Schutzfunktion gegen Modelldiebstahl
    Bei jeder API-Anfrage wird anti_distillation: ['fake_tools'] eingefügt, sodass der Server dem System-Prompt gefälschte Tool-Definitionen hinzufügt
    Das soll Trainingsdaten vergiften, falls konkurrierende Modelle den Traffic zum Trainieren scrapen

    • Offenbar hatte das tatsächlich Wirkung
      Das Modell Qwen 27B wurde aus Opus 4.6 destilliert und zeigte dabei Fehler bei der Tool-Nutzung
      Zugehöriger Tweet
    • Es fällt schwer zu glauben, dass Anthropic diese Forschung aus rein altruistischen Motiven betrieben hat
    • Andererseits ist das Rate Limiting inzwischen so streng, dass der Dienst an Nutzen verliert
    • Wenn der Server dem Client gefälschte Tool-Definitionen einschleust, frage ich mich, ob das Modell darauf trainiert wurde, sie zu ignorieren
      Vielleicht enthalten auch Sonnet oder Opus solche Datengifte?
    • Fraglich ist außerdem, warum so eine Funktion überhaupt im Client-Code steckt
  • Es wurde bekannt, dass Claude Code Axios verwendet
    Zugehöriger Tweet / HN-Thread

    • Die aktuelle Version verwendet Axios 1.14.0, also direkt die Version vor 1.14.1 mit enthaltener Malware
      Um automatische Updates zu verhindern, kann man der Umgebung export DISABLE_AUTOUPDATER=1 hinzufügen
      Mit claude doctor lässt sich dann prüfen, ob Auto-updates: disabled angezeigt wird