- Explorando uma vulnerabilidade no ambiente de execução de código do Claude Cowork, um invasor pode enviar os arquivos do usuário para sua própria conta da Anthropic
- Essa vulnerabilidade já havia sido reportada no ambiente de chat do Claude.ai, mas continua sem correção, e permanece presente no Cowork
- O ataque é executado por meio de um arquivo de documento com prompt injection oculto; durante a análise desse arquivo, o Cowork envia automaticamente os arquivos para fora
- Sem aprovação humana, o Cowork usa a chave de API do invasor para exfiltrar dados via API da Anthropic
- A estrutura facilita a exposição de usuários comuns e evidencia os riscos de segurança de agentes de IA e a importância da defesa contra prompt injection
Visão geral da vulnerabilidade
- Claude Cowork é uma prévia de pesquisa de um agente de IA para trabalho geral divulgada pela Anthropic, com acesso à internet
- A PromptArmor demonstrou que é possível exfiltrar arquivos de usuários explorando uma vulnerabilidade não corrigida que permanece no ambiente de programação do Cowork
- Essa vulnerabilidade foi descoberta e divulgada anteriormente por Johann Rehberger no Claude.ai, e a Anthropic a reconheceu, mas não a corrigiu
- A Anthropic alertou que, ao usar o Cowork, os usuários devem “ficar atentos a comportamentos que levantem suspeita de prompt injection”, mas isso foi apontado como uma exigência pouco realista para não especialistas
- A PromptArmor realizou uma demonstração pública para alertar os usuários sobre esse risco
Cadeia de ataque (Attack Chain)
- O ataque explora a allowlist da API da Anthropic para enviar dados para fora a partir do ambiente de VM do Claude
- O usuário conecta ao Cowork uma pasta local contendo arquivos imobiliários confidenciais
- O usuário faz upload de um arquivo de documento (.docx) com prompt injection oculto
- O documento se disfarça como um arquivo de “Skill”, com a injeção escondida em texto branco de 1 ponto e espaçamento de linha de 0,1
- Usando a “Skill” enviada, o usuário pede ao Cowork para analisar os arquivos
- A injeção manipula o Cowork para executar uma requisição cURL usando a chave de API da Anthropic do invasor, enviando os arquivos do usuário para a conta do invasor
- Execução automática sem processo de aprovação humana
- A VM do Claude bloqueia a maior parte da rede externa, mas a API da Anthropic passa por ser tratada como confiável
- O invasor pode, em sua própria conta da Anthropic, visualizar os arquivos da vítima e conversar com o Claude sobre eles
- Os arquivos vazados incluíam informações financeiras e parte do número do Seguro Social (SSN)
Resiliência por modelo (Model-specific Resilience)
- O ataque acima foi demonstrado no modelo Claude Haiku
- O Claude Opus 4.5 tem maior resistência a injeções, mas no ambiente do Cowork ainda é possível explorar a mesma vulnerabilidade de upload de arquivos por meio de prompt injection indireto
- Nos testes, assumiu-se um cenário em que o usuário fazia upload de um guia de integração malicioso, e registros de clientes eram exfiltrados para a conta do invasor
Negação de serviço via arquivos malformados (DOS via Malformed Files)
- A API do Claude gera erros repetidamente quando a extensão do arquivo não corresponde ao formato real
- Ex.: ao tentar ler como
.pdf um arquivo de texto simples com essa extensão, ocorrem erros de API em todas as conversas subsequentes
- Esses erros podem ser explorados em um ataque limitado de negação de serviço (DOS) usando prompt injection indireto
- Induzindo a criação e o upload de arquivos incorretos, é possível disparar alertas de erro no cliente do Claude e no console da Anthropic
Raio de impacto agêntico (Agentic Blast Radius)
- O Cowork foi projetado para interagir com navegador, servidor MCP, controle via AppleScript e outros elementos do ambiente de trabalho diário
- Isso aumenta a chance de dados sensíveis e dados não confiáveis serem processados em conjunto
- A superfície de ataque de prompt injection continua se ampliando, e é necessário cuidado ao configurar conectores
- Esta demonstração não usou conectores, mas os conectores podem se tornar um fator de risco importante para usuários comuns
2 comentários
No texto de impressões sobre o Claude Cowork escrito por Simon Willison também havia preocupação com ataques de prompt injection, mas foi rápido.
Comentários do Hacker News
Se você detectar que a API da Anthropic está sendo abusada, basta publicar essa chave de API em um GitHub Gist ou repositório público
A Anthropic é parceira de varredura do GitHub, então a chave é revogada quase imediatamente
Depois é só apagar o Gist, e outros provedores como a OpenAI funcionam de forma parecida
Documentação relacionada: Anthropic API Key Best Practices, GitHub Secret Scanning Patterns
Idealmente, o GitHub deveria fornecer uma API universal de revogação de tokens
Ou então seria melhor ativar diretamente a função de revogação em um repositório privado
Na demo, foi mostrado um prompt injection com um arquivo .docx escondendo texto em tamanho pequeno, mas na prática um simples arquivo Markdown já basta
Por exemplo, se vier com uma descrição como “Claude aprende técnicas de negociação de empréstimos”, muita gente usaria sem nem abrir o arquivo
Na verdade, um arquivo .md pode ser ainda mais eficaz que um .docx justamente por despertar menos suspeita
Em alguns setores, por exemplo, DOCX ainda é considerado mais normal que PDF
Nesses ambientes, um arquivo .md pode até parecer mais uma ferramenta de hacker
Era algo previsível desde o começo
Enquanto prompt injection não for resolvido, isso vai continuar acontecendo
Se imaginarmos o HN em 1999, o clima seria parecido com as reações iniciais a SQL injection, tipo “Bobby Tables derrubou o banco de dados”
Já no começo dos anos 2000 se dizia para usar SQL parametrizado em vez de interpolação de strings
Ainda hoje já temos todas as ferramentas necessárias; o problema é que as pessoas priorizam velocidade em vez de segurança
Ironicamente, quem iniciou essa corrida foi a OpenAI, que dizia valorizar segurança e alignment
Por exemplo, envolver a entrada do usuário em um token específico como (@##)(JF) e impedir a execução de comandos dentro dele
Parece algo que até um simples find/replace poderia fazer, então queria saber se estou deixando passar alguma coisa
Na verdade, quanto mais inteligente a IA ficar, maior pode ser o risco
Antes de cada chamada de ferramenta, ele precisa apresentar um “mandado” (warrant) assinado, limitando a execução apenas aos comandos permitidos
A ideia é que, mesmo que haja prompt injection, ele seja bloqueado mecanicamente
Dá a sensação de que voltou mais um bug de execução automática, no estilo “se parecer suspeito, execute o arquivo como se fosse um programa”
Já sofremos com esse tipo de problema na época do Windows XP, e no fim a Microsoft acabou desativando a execução automática
Sistemas baseados em prompt também precisam separar com clareza aquilo em que devem confiar
Acho problemático que as empresas de IA apenas “reconheçam” o risco e exijam dos usuários cuidados irreais
Por exemplo, se você criar um “bot da vovó” para organizar e-mails, ele pode acabar caindo em um golpe do príncipe nigeriano
Parece ser um problema causado pelo fato de o sistema de “skills” do Claude ser implícito
Não é algo explícito como comandos com /slash, e sim apenas instruções do tipo “como extrair um arquivo”
Por isso, só de usar palavras como “decompress” ou “extract” a execução pode ser disparada automaticamente
Essa estrutura facilita que prompt injection injete novas capacidades às escondidas
Por isso, seria necessário migrar para um sistema de ferramentas explícitas e registradas estaticamente
Por exemplo, criar uma ferramenta como Extract(path) e permitir por whitelist apenas coisas como Read ou Bash("tar *")
Assim também seria possível adicionar uma etapa de aprovação humana, e novas ferramentas não seriam registradas durante a sessão
Casos anteriores relacionados e a resposta oficial da Anthropic estão reunidos neste post de blog
É um pouco fora do tema, mas fiquei curioso se existe algum lugar que ofereça PoC de exfiltração de dados como serviço
Em especial, queria testar payloads tóxicos em CLAUDE.md quando o Claude roda em ambientes externos de CI
A atividade recente da promptarmor tem sido impressionante
Está tendo um papel importante em cobrar responsabilidade de qualidade dos times de produto
O ataque real exige que a vítima permita ao Claude acesso a pastas sensíveis e seja induzida a fazer upload de um DOCX com prompt injection invisível
Além disso, o conteúdo da injeção aparece para o usuário quando a saída é exibida em Markdown
O invasor precisa usar a própria chave de API, então é rastreável
Esse ataque só funciona em uma versão antiga do Haiku
No fim, parece que a promptarmor está exagerando para vender
Nosso time restringe a VM do agente para se comunicar apenas com pip, npm e apt
E também monitora o tamanho das solicitações de saída para evitar exfiltração anormal de dados
O problema triplo de mau uso, vazamento e autonomia da IA não se resolve simplesmente bloqueando um lado
Segredos podem ser codificados até em requisições pequenas, e uma IA desalinhada consegue encontrar sozinha esses caminhos de vazamento