6 pontos por GN⁺ 2026-01-15 | 2 comentários | Compartilhar no WhatsApp
  • 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
  1. O usuário conecta ao Cowork uma pasta local contendo arquivos imobiliários confidenciais
  2. 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
  3. Usando a “Skill” enviada, o usuário pede ao Cowork para analisar os arquivos
  4. 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
  5. 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

 
laeyoung 2026-01-15

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.

 
GN⁺ 2026-01-15
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

    • Não é recomendável porque é arriscado se o serviço de varredura de tokens do GitHub ficar fora do ar
      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
    • Isso parece jogar xadrez com hackers
    • Dá para revogar a chave diretamente no console da Anthropic, então fico me perguntando por que fazer tudo isso de forma tão complicada
    • Acho uma solução bem engenhosa, nunca tinha ouvido falar desse método
    • Mas, se o invasor roubar os arquivos e os mover para a própria conta da Anthropic, no fim isso significa que o mundo inteiro pode acessar aquela conta, o que é perigoso
  • 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

    • Parece uma situação de urso esperto vs. lata de lixo que não abre
    • Mas nem todo usuário pensa assim
      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”

    • A comparação é interessante, mas não é exata
      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
    • Fico pensando se não daria para resolver isso como no SQL injection, com sanitização de entrada (input sanitization)
      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
    • O problema mais fundamental é que talvez isso não seja resolvido nem com maior inteligência
      Na verdade, quanto mais inteligente a IA ficar, maior pode ser o risco
    • Estou experimentando um padrão de Prepared Statement para agentes
      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

    • A maioria das explicações usa a analogia com “SQL injection”, mas na verdade isso me parece mais próximo de phishing
      Por exemplo, se você criar um “bot da vovó” para organizar e-mails, ele pode acabar caindo em um golpe do príncipe nigeriano
    • No fim, isso não é muito diferente de dizer: “para usar este produto com segurança, é melhor nem usar
  • 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

    • Mas eles também têm interesse em vender produto por meio de marketing de medo
      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

    • Mas isso não é uma solução fundamental
      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
    • É uma abordagem interessante, mas fico me perguntando se um invasor também conseguiria fazer upload da codebase do usuário como pacote