A OpenAI confirmou essa semana que dois computadores de funcionários foram comprometidos no ataque “Mini Shai-Hulud”, uma onda de invasão que começou contaminando pacotes do TanStack no npm e foi se espalhando pelo ecossistema todo de bibliotecas open-source.

Esse artigo é uma leitura do que aconteceu, com nosso recorte do que isso muda na prática pra quem cria com IA usando Claude Code, Cursor, Codex e qualquer outra ferramenta que dependa do npm.

O que aconteceu, em ordem

Ilustração de um pacote npm gigante se abrindo e liberando vermes digitais estilizados que se espalham por outros pacotes menores num cenário de laboratório dramático

No dia 11 de maio de 2026, um grupo chamado TeamPCP injetou código malicioso no TanStack, a biblioteca por trás do TanStack Router e do TanStack Query. Em poucas horas, 42 pacotes do ecossistema TanStack foram publicados em 84 versões contaminadas.

A partir dali, o worm se replicou. No total foram mais de 170 pacotes comprometidos entre npm e PyPI, somando mais de 518 milhões de downloads acumulados. Caíram bibliotecas usadas todo dia por desenvolvedor, criador e empresa de IA: mistralai, guardrails-ai, @opensearch-project/opensearch, entre outras.

A vulnerabilidade no TanStack recebeu CVE oficial (CVE-2026-45321) com CVSS 9.6 de 10. Critical.

Dois dias depois, no dia 13 de maio, a OpenAI publicou comunicado confirmando que dois computadores internos baixaram o pacote envenenado antes da empresa terminar de subir uma nova camada de proteção contra esse tipo de ataque. Os atacantes conseguiram extrair “material de credenciais limitado” de alguns repositórios de código internos. A própria OpenAI fala que não tem evidência de que sistemas de produção, dados de cliente ou código de modelo tenham sido tocados, mas a empresa está rotacionando os certificados de assinatura de quatro produtos macOS: ChatGPT Desktop, Codex App, Codex CLI e Atlas.

Quem usa esses apps no Mac precisa atualizar até 12 de junho de 2026 ou eles vão parar de validar.

Por que esse worm é diferente de tudo que veio antes

Verme cartoon com expressão presunçosa usando um crachá de segurança falso passando despercebido por um guarda confuso em estilo Pixar dramático

Ataque a pacote npm não é novidade. O que torna o Mini Shai-Hulud um caso novo é que ele foi o primeiro worm documentado a publicar pacotes maliciosos com selo de origem válido (SLSA provenance), usando a própria infraestrutura de release do projeto vítima.

Como? O TanStack usa GitHub Actions pra publicar no npm. Os atacantes encontraram um jeito de envenenar o cache do GitHub Actions, extrair na memória o token OIDC do runner durante a execução, e usar esse token pra publicar pacotes assinados pelo próprio pipeline oficial. Tudo dentro do que aparece como “release legítimo do TanStack” pra quem olha de fora.

Depois de instalado, o worm:

  • Procura tokens npm com bypass de 2FA habilitado, que abrem a porta pra publicar em outros pacotes do mesmo mantenedor.
  • Cria hooks dentro do Claude Code e do VS Code pra continuar exfiltrando credencial mesmo depois.
  • Sobe um serviço chamado gh-token-monitor que fica reescaneando tokens GitHub e mandando pra fora.
  • Tem um “switch do morto”: se o desenvolvedor revoga o token no painel do npm, o script dispara um rm -rf ~/ no computador da vítima.

A coleta inclui credenciais de provedor de nuvem, carteira de cripto, ferramenta de IA, app de mensagem e pipeline de CI/CD. Tudo que tiver token na máquina.

O que isso significa pra quem cria com IA

Personagem vibe coder com óculos redondos grandes em um escritório iluminado descobrindo uma sombra ameaçadora atrás de um dos seus assistentes de IA brilhantes em laranja, expressão Pixar de surpresa

Aqui é onde o ataque deixa de ser “problema de empresa grande” e vira coisa nossa.

A maioria dos criadores que trabalha com IA hoje depende de uma pilha parecida: editor (Cursor, VS Code, Claude Code), libs do ecossistema React/Node (incluindo TanStack), provedor de IA (OpenAI, Anthropic, Mistral, Google), conta GitHub conectada via OAuth, tokens de deploy guardados em algum env file.

Esse ataque mostrou que dá pra contaminar tudo isso de uma vez só, partindo de UMA lib que você instalou sem pensar duas vezes. E pior: o pacote contaminado tinha SLSA provenance válida, então até as ferramentas que checam autenticidade automaticamente passaram batido.

Outro ponto que vale destacar: o worm instala hook no Claude Code. Isso significa que mesmo depois de a pessoa remover o pacote malicioso, a coleta de credencial continua rodando por dentro do próprio ambiente de criação com IA. O atacante usa o agente que você confia pra coletar o que ele precisa.

E o “switch do morto” com rm -rf ~/ torna a revogação de token uma decisão de risco. Pessoa que descobre a infecção e tenta cortar o token do jeito óbvio tem chance de perder a pasta home inteira do computador.

O que dá pra fazer agora se você usa Claude Code, Cursor ou Codex

Vibe coder em pose teatral selando o laptop com cera dourada cartoon, levantando escudo brilhante laranja sobre certificados digitais, expressão confiante em estilo Pixar dramático

Lista do que dá pra fazer hoje, sem virar paranoico mas saindo da posição de alvo fácil.

Atualizar os apps da OpenAI no Mac. Se você usa ChatGPT Desktop, Codex App, Codex CLI ou Atlas no macOS, abre, atualiza, deixa o app puxar o novo certificado. Depois do dia 12 de junho de 2026 as versões antigas param de validar. Não dá pra deixar pra última hora.

Revisar os pacotes que você instalou nas últimas duas semanas. Especialmente se passou por algum projeto com TanStack Router, TanStack Query, mistralai, guardrails-ai ou OpenSearch. Conferir versão exata contra a lista de versões comprometidas (CVE-2026-45321 lista todas).

Não revogar token suspeito direto pelo painel. Se desconfiar que uma máquina foi tocada, primeiro tirar a máquina da rede, fazer backup do que importa, e SÓ DEPOIS mexer em token. Por causa do dead-man’s switch.

Tirar bypass de 2FA dos tokens npm de quem publica pacote. Se você publica lib no npm, esse campo é o que o worm procura primeiro. Vale a chatice extra de fazer 2FA toda vez.

Olhar os hooks do Claude Code e dos plugins do VS Code. Pasta ~/.claude/hooks/ no Mac/Linux e %USERPROFILE%\.claude\hooks\ no Windows. Qualquer hook que você não lembra de ter criado vai pro lixo.

Pensar em tokens com escopo mínimo. Token de GitHub Actions com permissão de publicar tudo é o sonho do atacante. Vale a pena gastar uma hora separando token por projeto, com escopo do que cada um precisa.

Nada disso protege 100%. Mas tira você da camada de alvo trivial, que é onde 80% dos comprometidos do Mini Shai-Hulud caíram.

A lição grande do episódio é que a pilha de criação com IA virou alvo de primeira linha. Não dá mais pra tratar dependência open-source como “infraestrutura que outra pessoa cuida”. Quem cria com IA hoje cuida da própria cadeia de fornecedor, do mesmo jeito que empresa cuida.

Fonte

The Register: OpenAI caught in TanStack npm supply chain chaos after employee devices compromised

The Hacker News: Mini Shai-Hulud Worm Compromises TanStack, Mistral AI, Guardrails AI & More Packages