Claude Code speichert Passwörter im Klartext in Berechtigungsregeln
Apiiro zählte in 1.122 von 104.185 öffentlichen Kopien der Datei settings.local.json Geheimnisse. Unklar ist, wie verbreitet das Verhalten ist und ob Anthropic es behebt.
Mit KI erstelltInhalt
◆ Fakten auf einen Blick
- Apiiro fand 104.185 öffentliche Kopien von .claude/settings.local.json in 103.617 GitHub-Repositories.
- In 1.122 Dateien steckten 1.379 verschiedene Geheimnisse.
- Darunter waren 379 Datenbankpasswörter, 43 SSH-Zugänge, 42 GitHub-, GitLab- und npm-Tokens sowie 23 AWS-Keys.
- Mit Git-Historie, geteilter settings.json und Agent-Transkripten zählte Apiiro 2.539 Geheimnisse in 1.994 Repositories.
- Claude Code trägt settings.local.json nur in die globalen Git-Excludes ein, nicht in die .gitignore des Projekts.
1.122 von 104.185 öffentlichen Dateien enthalten Klartext-Geheimnisse
Wählt man in Claude Code bei einem Bash-Befehl „Yes, and don't ask again“, speichert das Programm unter Umständen mehr als die eine Freigabe. Laut dem Sicherheitsunternehmen Apiiro legt es den Befehl wörtlich als Allow-Regel in .claude/settings.local.json ab, einschließlich eines eingetippten Passworts, Tokens oder Keys. Die Primärquelle von Apiiro liegt der Redaktion nicht vor. Die Zahlen stammen aus Berichten über die Studie.
Apiiro fand 104.185 öffentlich zugängliche Kopien der Datei in 103.617 GitHub-Repositories. In 1.122 davon, rund 1,1 Prozent, steckte mindestens ein Geheimnis. Insgesamt waren es 1.379. Laut Apiiro handelt es sich um 379 Datenbankpasswörter, 43 SSH-Zugänge, 42 Tokens für GitHub, GitLab oder npm und 23 AWS-Keys.
Wer zusätzlich die Git-Historie, die geteilte settings.json und gespeicherte Agent-Transkripte berücksichtigt, kommt auf 2.539 Geheimnisse in 1.994 Repositories. Einer Quelle zufolge sind 63 Organisationen betroffen. Die Daten stammen laut Bericht vom 1. bis 3. November.
Wie eine lokale Datei ins öffentliche Repo gelangt
Die Dokumentation beschreibt settings.local.json als Ebene für persönliche, projekt- oder maschinenspezifische Überschreibungen, die nicht im Team geteilt werden. Geteilt wird dagegen .claude/settings.json, die bewusst ins Repository eingecheckt wird.
Dass die lokale Datei dennoch öffentlich wird, hängt an der Art des Schutzes. Claude Code trägt sie laut Berichten nur in die globalen Git-Excludes des Nutzers ein, nicht in die .gitignore des Projekts. Eine bereits getrackte Datei ignoriert es. Wer das Projekt auf einem anderen Rechner klont, die Datei von Hand anlegt oder Git anders einrichtet, kann sie deshalb einchecken. Laut Bericht lagen alle betroffenen Dateien am 2. November noch auf dem Default-Branch ihres Repositorys.
Offen: Wann Passwörter gespeichert werden und ob Anthropic reagiert
Die Quellen widersprechen sich im Detail. Eine Darstellung besagt, die Option speichere den Befehl wörtlich samt Passwort. Eine andere formuliert vorsichtiger, Claude Code „can“ den vollständigen Befehl sichern. Nach einer dritten Darstellung landet das Passwort nur dann im Klartext in der Datei, wenn die Regel der exakte Befehl ist und kein Präfix-Muster. Aus dem Material geht nicht hervor, wann Claude Code exakte Regeln statt Präfix-Muster anlegt. Wie oft das Verhalten auftritt, bleibt damit unklar.
Auch das Veröffentlichungsdatum variiert. Eine Quelle nennt den 5. November, eine andere den 6. November, mit Weitergabe am 7. November. Beide sind Sekundärquellen.
Apiiro testete die Zugangsdaten nicht. Ein benachrichtigtes Unternehmen bestätigte, dass sein Key aktiv war. Ein Missbrauch ist nicht belegt. Das Verzeichnis pwn.watch führt den Fall mit dem Vermerk „No patch yet“. Der vorliegende Auszug des Changelogs nennt nur die neue Einstellung permissions.denyInsteadOfPrompting. Einen Eintrag zu Geheimnissen in gespeicherten Regeln enthält er nicht.
Zugangsdaten rotieren, Datei aus dem Tracking nehmen
Laut Bericht sollten Betroffene für jedes Repository, das die Datei je enthielt, alle darin gespeicherten Zugangsdaten rotieren und die Datei danach aus dem Tracking nehmen. Das Rotieren ist nötig, weil die Werte in der Git-Historie öffentlich bleiben. Auch die Betreiber der exponierten Dienste, etwa von Datenbanken oder Cloud-Konten, sind betroffen.
Als dokumentierte Stellschrauben nennt die Dokumentation Hooks, die Tool-Aufrufe vor der Ausführung blockieren können. Deny- und Ask-Regeln gelten unabhängig von einem Hook-Allow. Ob das gegen dieses Problem wirkt, ist nicht belegt.



