Claude Code legt 2539 Zugangsdaten auf GitHub offen

Forscher des Sicherheitsunternehmens Apiiro haben in öffentlichen GitHub-Repositories die lokalen Einstellungsdateien von Claude Code, die Git-Historie und die Gesprächsprotokolle von KI-Agenten durchsucht und insgesamt 2539 echte Zugangsdaten gefunden. Sie verteilen sich auf 1994 Code-Repositories und betreffen 63 Organisationen. Zu den offengelegten Daten gehören Azure-Datenbankpasswörter, Square-Tokens für die Produktionsumgebung, SSH-Root-Zugänge und sogar das Eigentümerpasswort einer Datenbank mit Patientenakten.

Die Ursache liegt bei einem Button, den viele Entwickler jeden Tag anklicken.

Illustration: a key-marked note slips from a laptop, symbolizing secrets leaked through Claude Code settings

Was bei „Nicht mehr fragen“ in die Datei geschrieben wird

Bevor Claude Code einen Shell-Befehl ausführt, holt es eine Freigabe ein. Wählt der Nutzer „Ja, und nicht mehr fragen“, wird diese Regel in die Datei .claude/settings.local.json im Projektverzeichnis geschrieben, und ähnliche Befehle lösen künftig keinen Dialog mehr aus. Das Problem: Gespeichert wird häufig der Befehl im Wortlaut. Stehen darin direkt eine Datenbank-Verbindungszeichenfolge, ein API-Token oder ein Schlüssel, landen auch diese unverändert in der Datei.

Laut Anthropics Dokumentation richtet Claude Code beim Anlegen der Datei eine Git-Ignore-Regel dafür ein. Apiiros Auswertung zeigt, dass dieser Schutz in etlichen Fällen versagt: wenn das Projekt auf einen anderen Rechner geklont wird, wenn ein gewöhnlicher Ordner erst später zum Git-Repository gemacht wird oder wenn die Datei zwangsweise in die Versionsverwaltung aufgenommen wird. In all diesen Fällen kann settings.local.json mit hochgeladen werden.

Einige Zahlen von Apiiro:

  • Auf öffentlichem GitHub liegen 104185 Dateien settings.local.json in 103617 Repositories;
  • davon enthalten 1122 (rund 1,1 %) echte Geheimnisse, nach Deduplizierung 1379;
  • unter den 1105 zurückverfolgten Repositories gibt es in 539 Commits, die von Claude mitsigniert wurden und diese Datei geändert haben.

Je größer die Datei, desto höher das Risiko. Bei Dateien über 8 KB verbirgt sich in etwa jeder zehnten ein echter Schlüssel, bei Dateien unter 500 Byte nicht einmal in jeder fünfhundertsten. Die Freigaberegeln summieren sich Eintrag für Eintrag: Je länger ein Nutzer „Nicht mehr fragen“ anklickt, desto mehr sammelt sich in der Datei an.

Apiiro hat nicht geprüft, ob diese Zugangsdaten derzeit noch gültig sind. Selbst wenn Repository-Eigentümer die Datei löschen, können die Schlüssel in der Git-Historie und in bestehenden Forks erhalten bleiben.

Das Problem wurde schon lange gemeldet

Bereits am 11. August 2025 meldete ein Nutzer im Issue-Tracker von Claude Code, dass genehmigte Befehle samt darin enthaltener API-Schlüssel und Tokens wortwörtlich in settings.local.json gespeichert werden. Die Meldung wurde später wegen 60 Tagen ohne Aktivität automatisch geschlossen und nicht behoben.

Mehr als ein Jahr später wurde derselbe Mechanismus systematisch ausgelesen. Boris Cherny, der bei Claude Code verantwortlich ist, erklärte auf Hacker News, Einstellungsdateien gehörten grundsätzlich nicht in die Versionsverwaltung; das Team prüfe Gegenmaßnahmen und erwäge, einen Secret-Scan direkt in Claude Code einzubauen. Bis dahin empfehle er, selbst ein Tool zur Schlüsselsuche laufen zu lassen und aufzuräumen. Einen Termin für die Korrektur hat Anthropic nicht genannt.

Es ist auch nicht das erste Mal in diesem Monat, dass bei Claude Code die lokale Datenverarbeitung beanstandet wird. Anfang des Monats wurde bemängelt, dass das Tool bei einigen Netzwerkanfragen die E-Mail-Adresse des Nutzers mitsendet; auch damals folgte erst eine Zwischenlösung, die reguläre Version kam danach. Beiden Fällen ist gemeinsam, dass Agenten-Tools Informationen auf der Festplatte ablegen oder nach außen senden, um den Nutzer weniger zu stören, und Entwickler kaum bemerken, was genau aufgezeichnet wird.

Was Entwickler jetzt tun können

Wer Claude Code genutzt hat, sollte zunächst lokale und entfernte Repositories nach .claude/settings.local.json und .claude/settings.json durchsuchen und prüfen, ob dort Befehle mit Zugangsdaten im Klartext stehen. Bestätigt offengelegte Schlüssel müssen widerrufen und neu ausgestellt werden; die Datei allein zu löschen reicht nicht.

Sicherer ist es, Schlüssel gar nicht erst als Kommandozeilenparameter zu schreiben, sondern über Umgebungsvariablen oder ein Secret-Management-Tool einzubinden. Zusätzlich sollte man für das Repository das Secret Scanning von GitHub oder eine vergleichbare Prüfung vor dem Commit aktivieren, damit solche Dateien schon vor dem Push abgefangen werden.

Quellen: ITHome, Apiiro-Forschungsbericht, CocoLoop, Ars Technica, The Hacker News; abgeglichen wurden die Zahl der Einstellungsdateien, der Anteil der Dateien mit Schlüsseln, die Gesamtzahl der Zugangsdaten und die Zahl der betroffenen Organisationen.