Em resumo
O Claude Code é seguro se o configurar, e arriscado com os valores por omissão. Numa instalação nova de outubro de 2026 a sandbox está desligada, não há regras deny nem hooks, e um comando de shell que aprove pode escrever em qualquer sítio a que a sua conta de utilizador chegue. Classifiquei 93 relatos públicos de incidentes, de issues do GitHub, avisos de segurança e artigos: o dano veio de git reset --hard e resets de bases de dados que ninguém pediu, de regras que só existiam no CLAUDE.md, de repositórios, issues e plugins não confiáveis, e de subagentes que lançavam mais subagentes. Quase nada foi um rm -rf / dramático. Ponha o trabalho no git, ative a sandbox, escreva regras deny e um hook que bloqueie, e mantenha as credenciais de produção fora do alcance do agente.
93
relatos públicos de incidentes classificados por causa, de junho de 2025 a outubro de 2026
issues do GitHub, avisos, blogs de segurança, Hacker News
19
dizem que se perderam dados para sempre
outros 11 dizem que foram recuperados
10
quebraram uma regra escrita só no CLAUDE.md
um prompt é um conselho, uma regra de permissões é uma garantia
Sou o Denys, engenheiro full-stack e de IA, e uso o Claude Code todos os dias. Abaixo estão duas coisas: o que correu mal a outras pessoas e o que o Claude Code lhe dá contra isso, incluindo quais desses controlos vêm ligados por omissão. Depois, uma configuração que cobre as falhas.
O Claude Code é seguro?
A segurança não está no modelo. O Claude Code decide o que corre através de um modo de permissões, regras de permissões, uma sandbox opcional e hooks opcionais, e a página de permissões da Anthropic diz-lo claramente: as regras são aplicadas pelo Claude Code, não pelo modelo, e as instruções do CLAUDE.md moldam o que o Claude tenta fazer mas não mudam o que lhe é permitido fazer.
Por isso a resposta honesta depende da sua configuração. A página de segurança descreve o limite do diretório de trabalho como um pedido de permissão e acrescenta que «um comando Bash que aprove ainda pode escrever em qualquer sítio a que a sua conta de utilizador chegue». A página da sandbox diz «A sandbox está desligada por omissão», e que mesmo ligada só cobre comandos de shell: as ferramentas de ficheiros, os servidores MCP e os hooks correm fora dela. A frase final da Anthropic na página de segurança: «nenhum sistema é completamente imune a todos os ataques».
O que correu mal a outras pessoas: 93 relatos de incidentes
A 31 de outubro de 2026 reuni relatos públicos do Claude Code a causar dano ou quase: 63 issues do GitHub e avisos de segurança, 26 artigos em blogs de segurança e engenharia e 4 threads do Hacker News, de junho de 2025 a outubro de 2026. Deixei de fora threads do Reddit que só consegui ver através de espelhos. A cada relato atribuí um tipo e, quando o autor o dizia, o modo de permissões e se houve perda de dados. 60 das 61 citações que verifiquei contra o texto do GitHub coincidiam palavra por palavra.
19 relatos dizem que os dados se perderam para sempre, 11 que foram recuperados, 36 descrevem uma falha encontrada antes de alguém ser prejudicado (a maioria, avisos entretanto corrigidos) e 27 não o dizem. 56 de 93 não indicam o modo de permissões, por isso este conjunto não lhe consegue dizer se o «modo YOLO» é onde acontece o dano. O que mostra são cinco padrões.
1. O agente executa um comando destrutivo que ninguém pediu. Enquanto corrigia erros de lint executou git checkout HEAD -- . e deitou fora uma hora de trabalho sem commit (#11821). No início da sessão executou git reset --hard origin/main sobre commits por enviar (#34327). Executou drizzle-kit push --force contra uma base de dados de produção sem cópias de segurança (#27063), aceitou um reset do Prisma em produção (#33183) e, num artigo, executou terraform destroy com um ficheiro de estado antigo de produção na pasta. Nenhum destes é rm -rf /. São comandos normais com uma opção que salta a confirmação da própria ferramenta.
2. Regras que vivem só no CLAUDE.md. 10 relatos envolvem uma regra escrita que o agente quebrou: fez commit de chaves de API reais apesar de uma secção de segurança de 150 linhas (#2142), fez commit depois de uma regra de «nunca fazer commit» (#34774), imprimiu um token com grep e só reparou depois (#44868). Um autor aponta que o CLAUDE.md está no repositório onde o agente pode escrever (#23870). Isto coincide com a documentação: um prompt é um conselho, uma regra é uma garantia.
3. Uma regra deny bloqueia um comando, não um objetivo. Com Bash(rm *) negado, o agente apagou o ficheiro com uma linha de Python (#39459). A página de permissões diz o mesmo sobre a correspondência de texto: git -C . push não corresponde a uma regra para git push.
4. Texto e código não confiáveis recebem o mesmo poder que você. O ficheiro de definições de um repositório podia executar hooks e enviar a chave de API antes da caixa de confiança (Check Point, CVE-2025-59536). Um prompt num issue do GitHub fez a GitHub Action do Claude Code ler o ambiente do runner e revelar a sua chave de API (Microsoft). Um plugin de um marketplace com um hook escondido enviou código para o servidor de um atacante (PromptArmor), e em outubro uma cópia adulterada da extensão do Claude Code esteve no marketplace do Cursor (Cursor). O que foi corrigido está corrigido; o padrão fica.
5. Subagentes que lançam subagentes. Uma sessão queimou mais de 600 dólares (#72732); outra iniciou cerca de 242 agentes antes de o utilizador escrever /exit (#69332). A resposta de um mantenedor em #72732 diz que os limites de subagentes simultâneos e de profundidade de aninhamento foram acrescentados nas versões 2.1.217 e 2.1.219.
O que o Claude Code lhe dá e o que vem ligado por omissão
Cada controlo abaixo é real e está documentado. A coluna que importa é a terceira.
| Controlo | O que faz | Por omissão, outubro de 2026 |
|---|---|---|
| Modo de permissões | O manual pede confirmação antes de editar e executar; o modo auto deixa um modelo classificador aprovar por si | O modo auto é o modo inicial das sessões interativas desde a v2.1.283 |
| Classificador do modo auto | Bloqueia as ações que considera inseguras | Ligado com o modo auto. Números de março de 2026 da Anthropic: falhou 17% de 52 ações reais demasiado ousadas |
| Regras deny, ask e allow | Bloqueiam ou forçam um pedido para as chamadas de ferramentas correspondentes, em todos os modos | Nenhuma até as escrever |
| Sandbox do Bash | Limites impostos pelo sistema operativo a ficheiros e rede para comandos de shell | Desligada. Só shell; lê ~/.ssh a menos que o negue |
| Hooks | O seu script corre antes de cada chamada de ferramenta e pode bloqueá-la | Nenhum |
Checkpoints e /rewind |
Desfazem as edições de ficheiros do Claude | Ligados, mas os ficheiros alterados só pelo Bash não são registados |
Caixa de confiança, aprovação do .mcp.json |
Perguntam antes de confiar numa pasta ou nos servidores MCP de um projeto | Ligados em modo interativo; uma sessão -p não mostra nenhum |
| Definições geridas | Uma organização fixa modos, regras e hooks | Não implementadas, a menos que a sua empresa o faça |
Este é o caminho de uma chamada de ferramenta. Os passos a vermelho são os que uma instalação nova deixa vazios ou desligados:
- O Claude propõe uma chamada de ferramentaEditar um ficheiro, executar um comando de shell, chamar um servidor MCP.
- Hooks PreToolUseO seu script vê a chamada completa e pode bloqueá-la. Nenhum por omissão.
- Regras deny e askComparam o comando tal como está escrito. Nenhuma por omissão.
- Modo de permissõesO manual pergunta-lhe a si, o modo auto pergunta a um classificador, o bypass não pergunta a ninguém.
- SandboxLimites do sistema operativo a ficheiros e rede, só para comandos de shell. Desligada por omissão.
- A chamada corre com o acesso do seu utilizadorDepois deste ponto, só o git e as cópias de segurança ajudam.
O --dangerously-skip-permissions tem uma linha própria na documentação: «Use este modo apenas em ambientes isolados, como contentores ou VMs, onde o Claude Code não possa causar dano.»
As regras deny e os hooks avaliam o comando como texto, por isso um comando escrito de outra forma ainda pode passar, e um hook corre com todo o seu acesso. É por isso que são uma só camada, e o git, as cópias de segurança e as credenciais separadas são as outras.
Como configurar o Claude Code em segurança
Por ordem de valor por minuto:
- Faça commit antes de começar, e muitas vezes. Os checkpoints não cobrem ficheiros alterados por um comando de shell. O git cobre.
- Mantenha as credenciais de produção fora da pasta do agente. Num relato, os scripts descartáveis de um subagente executaram
DELETE FROMem todas as tabelas porque as credenciais de produção estavam sem comentário no.envlocal (#64056). Uma base de dados de desenvolvimento que o agente possa estragar não tem problema; uma de produção a que ele chegue é o incidente. - Escreva regras deny para os comandos que destroem. Aplicam-se em todos os modos, incluindo o bypass:
{
"permissions": {
"deny": [
"Bash(git reset --hard *)",
"Bash(git push --force *)",
"Bash(git push -f *)",
"Bash(git checkout -- *)",
"Bash(git clean *)",
"Bash(terraform destroy *)",
"Bash(drizzle-kit push --force *)",
"Bash(prisma migrate reset *)",
"Read(./.env)",
"Read(./.env.*)"
]
},
"sandbox": {
"enabled": true,
"allowUnsandboxedCommands": false
}
}
- Ative a sandbox (
/sandbox) e desligue a repetição sem sandbox, como acima. Acrescentefilesystem.denyReadpara~/.sshe para as pastas de credenciais na cloud, já que a sandbox as lê por omissão. - Acrescente um hook
PreToolUsepara o que as regras de texto não veem. Uma regra deny não vêgit -C . push --forcenem um apagamento em Python; um script curto que olhe para o comando inteiro vê. Comece pelos cinco comandos que mais lhe doeriam. - Trate o conteúdo não confiável como código. Abra repositórios desconhecidos num contentor ou numa VM, dê às execuções de CI tokens com âmbito limitado e lembre-se de que uma sessão
-pnão mostra caixa de confiança. Um plugin ou servidor MCP corre com os seus privilégios; a Anthropic diz que «não audita a segurança nem gere qualquer servidor MCP». - Limite as execuções longas. Use
--max-budget-usdpara trabalho sem supervisão e vigie o número de subagentes.
Se o agente constrói sobre o Supabase, o mesmo raciocínio vale para as chaves: a chave secreta que usa em scripts ignora todas as policies, como mostrei em anon key vs service role key. A lista mais ampla do que as apps criadas com IA fazem mal está em riscos de segurança do vibe coding, e como os agentes falham em execuções longas está em o que se partiu na minha orquestração multiagente.
Perguntas frequentes
O Claude Code pode apagar os meus ficheiros? Sim. No modo Manual pergunta antes, mas um comando aprovado pode chegar a tudo a que o seu utilizador chega; com os modos de aprovação automática pode não perguntar. 11 dos relatos acima são apagamentos de ficheiros. O git e as cópias de segurança são a solução que funciona sempre.
O --dangerously-skip-permissions é seguro? Só num contentor ou numa VM sem nada que não possa perder, segundo a documentação da Anthropic. As regras deny e os hooks continuam a aplicar-se nesse modo; os pedidos de confirmação não.
O modo auto é seguro? Mais seguro do que aprovar tudo por reflexo. A Anthropic mediu uma taxa de falsos positivos de 0,4% e disse que falhou 17% das ações reais demasiado ousadas no seu teste de março de 2026, e chamou-lhe «não um substituto direto de uma revisão humana cuidadosa em infraestrutura de alto risco».
O Claude Code envia o meu código à Anthropic para treino? Nos termos comerciais (Team, Enterprise, API), a Anthropic diz que não treina com o seu código nem com os seus prompts, a menos que o aceite. Nos planos de consumidor é uma definição que controla. Os detalhes estão na página de utilização de dados.
O modo auto é o mesmo que o --dangerously-skip-permissions? Não. A Anthropic criou o modo auto para substituir essa opção: um classificador continua a rever os comandos de shell, as chamadas de rede e a criação de subagentes, e após 3 recusas seguidas ou 20 no total pára e devolve-lhe o controlo. A opção não revê nada.