Vou te contar uma coisa que talvez te tire o sono.
Cada vez que o Claude Code executa um comando no terminal — um npm install, um git push, um script qualquer — esse subprocesso herda todas as variáveis de ambiente do seu shell. Todas. Incluindo sua ANTHROPIC_API_KEY. Seu AWS_ACCESS_KEY_ID. Seu GH_TOKEN. Sua senha de banco de dados.
Você confia no Claude Code. Eu também confio. Mas a pergunta não é se você confia na ferramenta. A pergunta é: você confia em cada repositório que clona, cada hook que dispara, cada servidor MCP que conecta?
Porque em fevereiro de 2026, a Check Point Research publicou CVEs reais mostrando exatamente como um .claude/settings.json malicioso num repositório podia roubar sua API key antes mesmo de você ver o diálogo de permissão. E em março, o relatório da GitGuardian mostrou que 29 milhões de secrets foram expostos no GitHub em 2025 — com ferramentas de IA dobrando a taxa de vazamento.
A boa notícia? A Anthropic resolveu isso com uma única variável de ambiente. E leva 2 minutos para ativar.
O Problema: Herança Tóxica de Credenciais
Quando você abre o terminal, seu shell carrega dezenas de variáveis de ambiente. Muitas são inofensivas — PATH, HOME, LANG. Mas entre elas estão as credenciais que movem sua operação:
ANTHROPIC_API_KEY=sk-ant-...
AWS_ACCESS_KEY_ID=AKIA...
AWS_SECRET_ACCESS_KEY=...
GH_TOKEN=ghp_...
DATABASE_URL=postgres://user:password@...
STRIPE_SECRET_KEY=sk_live_...
No Unix, todo processo filho herda o ambiente do pai. Isso é um comportamento padrão do sistema operacional, não um bug do Claude Code. Quando o Claude roda npm test, aquele processo npm — e todos os seus filhos — têm acesso a cada uma dessas variáveis.
Na maioria dos cenários, isso é inofensivo. O npm test não vai ler sua ANTHROPIC_API_KEY. Mas o cenário muda quando entram em cena:
- Hooks maliciosos em repositórios clonados (um
PreToolUsehook pode executar shell commands) - Servidores MCP comprometidos (um MCP server stdio tem acesso ao ambiente do subprocesso)
- Prompt injection (um atacante que convence o Claude a rodar
echo $ANTHROPIC_API_KEY | curl ...) - Dependências comprometidas (um
postinstallscript de um pacote NPM pode lerprocess.env)
A Check Point Research demonstrou exatamente isso com os CVEs CVE-2025-59536 e CVE-2026-21852. Eles conseguiram sobrescrever a ANTHROPIC_BASE_URL via um settings.json de repositório, redirecionando todas as requisições da API — com o header de autorização completo em texto plano — para um servidor controlado pelo atacante. Tudo antes do usuário ver qualquer diálogo de confiança.
A Anthropic corrigiu esses CVEs específicos. Mas o vetor de ataque subjacente — credenciais expostas em subprocessos — permanecia aberto. Até agora.
A Solução: CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1
Na versão v2.1.83, a Anthropic introduziu uma variável de ambiente que muda o jogo:
export CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1
Quando ativada, essa variável faz uma coisa simples mas poderosa: remove todas as credenciais da Anthropic e de provedores cloud do ambiente de subprocessos. O processo pai do Claude Code — o que faz as chamadas à API — mantém as credenciais normalmente. Mas tudo que o Claude spawna (Bash tool, hooks, servidores MCP stdio) roda num ambiente limpo.
Na prática:
| Processo | Acesso às credenciais |
|---|---|
| Claude Code (processo pai) | Sim — precisa para API calls |
npm test (Bash tool) |
Não — ambiente limpo |
| Hook PreToolUse (shell) | Não — ambiente limpo |
| MCP server stdio | Não — ambiente limpo |
É o princípio do menor privilégio aplicado na prática. Subprocessos não precisam da sua ANTHROPIC_API_KEY para rodar git status. Então por que teriam acesso?
Como Ativar na Prática
Para uso individual
Adicione ao seu ~/.bashrc, ~/.zshrc, ou equivalente:
# Proteger credenciais nos subprocessos do Claude Code
export CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1
Recarregue o shell:
source ~/.bashrc # ou source ~/.zshrc
Pronto. A partir de agora, toda sessão do Claude Code protege automaticamente suas credenciais.
Para times (CI/CD e GitHub Actions)
Se sua software house usa Claude Code em pipelines, é ainda mais crítico. Em CI/CD, os runners geralmente têm credenciais com permissões elevadas. A boa notícia: se você usa claude-code-action com allowed_non_write_users, o scrubbing já é ativado automaticamente.
Para outros cenários de CI/CD:
# GitHub Actions
env:
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB: "1"
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
# O Claude Code consegue usar a API key para suas chamadas,
# mas subprocessos NÃO herdam a key
Combinando com Sandbox
Para máxima proteção, combine SUBPROCESS_ENV_SCRUB com o sandboxing do Claude Code:
{
"sandbox": {
"enabled": true,
"failIfUnavailable": true
}
}
O sandbox.failIfUnavailable: true (também introduzido na v2.1.83) garante que se o sandbox não conseguir iniciar — dependências faltando, plataforma incompatível — o Claude Code para em vez de rodar sem proteção. Para ambientes gerenciados, isso é essencial.
Assim você tem duas camadas:
- Sandbox → isolamento de filesystem e rede via OS (Seatbelt no macOS, bubblewrap no Linux)
- Env Scrub → isolamento de credenciais no ambiente de subprocessos
Os Números que Justificam a Urgência
O relatório State of Secrets Sprawl 2026 da GitGuardian pintou um quadro alarmante:
- 28.65 milhões de novos secrets hardcoded em commits públicos do GitHub em 2025 (aumento de 34% ano a ano)
- Commits assistidos por AI têm taxa de vazamento de 3.2% — o dobro da taxa baseline de 1.5%
- 1.275.105 credenciais de serviços de IA expostas — aumento de 81% ano a ano
- 24.008 secrets únicos encontrados em arquivos de configuração MCP
- 64% das credenciais válidas de 2022 ainda estavam ativas em janeiro de 2026
Esse último número é assustador. Significa que se uma credencial vazar hoje, há uma chance real de que ainda esteja funcionando daqui a 4 anos. A remediação é lenta. A exposição é permanente.
E o IBM X-Force Threat Index 2026 reportou que ataques AI-driven estão escalando enquanto gaps básicos de segurança continuam abertos. O cenário é claro: atacantes estão ficando mais sofisticados, e a maioria das empresas ainda não protegeu o básico.
Por que Isso Importa para Sua Software House
Na minha experiência mentorando mais de 300 software houses, segurança é sempre a coisa que “a gente vai resolver depois”. Até que acontece.
Pensa comigo: quantos devs na sua SH rodam Claude Code? Cada um tem no shell pelo menos a ANTHROPIC_API_KEY, provavelmente tokens do GitHub, credenciais AWS ou GCP, chaves de API de clientes. Agora multiplica pelo número de repositórios que eles clonam por semana — incluindo repos de terceiros, forks, POCs.
Basta um repositório com um .claude/settings.json malicioso ou um pacote NPM com um postinstall curioso para exfiltrar credenciais. E com AI coding tools dobrando a taxa de vazamento segundo a GitGuardian, o risco não é teórico — é estatístico.
O custo? Não é só a rotação de keys. É o blast radius. A Check Point Research mostrou que API keys roubadas davam acesso a Workspace files de times inteiros — não só do dev individual. Um vazamento escala para toda a equipe.
E você resolve com uma linha:
export CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1
Dois minutos de setup. Zero impacto no workflow. Proteção imediata.
Defesa em Profundidade: O Stack Completo
Se você leu os artigos anteriores sobre hooks HTTP e PermissionDenied hook, já sabe que o Claude Code está construindo um ecossistema sério de segurança e governança. O SUBPROCESS_ENV_SCRUB é mais uma peça nesse stack:
| Camada | Feature | O que protege |
|---|---|---|
| Rede | Sandbox network isolation | Exfiltração de dados via rede |
| Filesystem | Sandbox filesystem isolation | Acesso a arquivos fora do projeto |
| Credenciais | SUBPROCESS_ENV_SCRUB |
Herança de secrets em subprocessos |
| Permissões | Auto mode + PermissionDenied | Execução de comandos perigosos |
| Governança | Hooks + managed settings | Políticas centralizadas de time |
| Observabilidade | StopFailure hook + statusline | Visibilidade de falhas e consumo |
Nenhuma camada sozinha é suficiente. A segurança real vem da combinação. E o SUBPROCESS_ENV_SCRUB fecha o gap que talvez seja o mais invisível e mais perigoso: suas credenciais viajando silenciosamente para cada subprocesso.
O que Eu Penso
Essa feature deveria estar ativada por padrão. Ponto. Não existe cenário legítimo onde um npm test precisa da sua ANTHROPIC_API_KEY. Entendo por que a Anthropic fez como opt-in — backward compatibility, edge cases — mas o risco do default atual é desproporcional.
Se você gerencia uma software house e seus devs usam Claude Code, colocar CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1 no perfil de todos os devs é a coisa mais impactante que você pode fazer em segurança hoje com 2 minutos de trabalho. E combinar com sandbox.failIfUnavailable: true fecha o circuito.
Eu já orientei as SHs que mentoro a ativarem. Não porque algo ruim aconteceu — mas porque quando acontecer, vai ser tarde demais para configurar.
Conclusão
29 milhões de secrets vazados. AI tools dobrando a taxa de exposição. CVEs reais de exfiltração de API keys no Claude Code já publicados e corrigidos. O cenário não é apocalíptico — mas é real.
A Anthropic deu a ferramenta certa: CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1. Simples, eficaz, sem impacto no workflow. Combine com o sandbox e failIfUnavailable para defesa em profundidade.
Se a sua software house usa IA para desenvolver — e em 2026, quem não usa? — proteger credenciais não é paranoia. É higiene básica.
Ativa. Hoje. Uma linha no .bashrc e pronto.
Sou Thulio, mentoro 300+ SHs desde 2016. Se você quer implementar segurança de verdade na operação de IA da sua software house, vem conversar.
Documentação oficial: Environment Variables | Sandboxing | Security



