Alerta de Segurança: Versão Maliciosa do Bitwarden Circula Após Ataque à NPM para Roubo de Dados e Credenciais

Uma versão maliciosa de um gerenciador de senhas ficou disponível por menos de duas horas, apresentando um stealer com persistência em shell, kill switch direcionado à Rússia e focando em ferramentas de IA como Claude Code e Cursor.

Uma ferramenta projetada para proteger senhas foi manipulada para roubá-las. A versão 2026.4.0 do @bitwarden/cli foi disponibilizada no npm na última terça-feira (22), carregando um malware destinado a furtar credenciais de desenvolvedores, incluindo chaves SSH e tokens de nuvem.

Este incidente ocorreu após hackers sequestrarem o pipeline de publicação da Bitwarden, sem deixar rastros no repositório. A empresa, por sua vez, confirmou o ataque, afirmando que as informações de vault de usuários não foram comprometidas. Este ataque atinge um dos gerenciadores de senhas mais usados no mercado corporativo, que, segundo a Socket, atende a mais de 10 milhões de usuários e 50 mil empresas.

A plataforma Socket identificou o pacote @bitwarden/cli 2026.4.0 como malware e deu-lhe uma pontuação zero em segurança de supply chain; a versão foi marcada como depreciada após a descoberta. Imagem: Socket.

Como o pipeline da Bitwarden foi comprometido

O ataque teve início pela conta GitHub de um engenheiro da Bitwarden. Com acesso total, o invasor criou um branch no repositório bitwarden/clients e inseriu um tarball malicioso pré-compilado, substituindo um token OIDC do GitHub Actions por um token de autenticação do npm. Assim, o pacote adulterado foi publicado diretamente no registro.

Depois de realizar a publicação, o hacker apagou todas as provas no repositório, incluindo o branch, o histórico de execuções do workflow, e a tag de release. O pacote ficou disponível no npm como a única evidência remanescente.

Leia Mais

Vercel confirma invasão após hacker colocar dados à venda por US$ 2 milhões

O incidente é o primeiro caso confirmado em que o OIDC Trusted Publishing do npm, um mecanismo projetado para aumentar a segurança das publicações, foi utilizado como vetor de ataque.

Esse ataque é considerado o primeiro caso confirmado em que o OIDC Trusted Publishing do npm foi explorado para fins maliciosos. Este recurso foi criado exatamente para eliminar tokens de longa duração, mas não impõe restrições por branch. Assim, qualquer branch comprometido no repositório tinha permissão para publicar no npm.

O que o malware fazia

O pacote comprometido mantinha as funcionalidades originais do CLI. Desenvolvedores que instalaram a versão 2026.4.0 recebiam uma ferramenta funcional, sem mensagens de erro e sem sinais visíveis de problemas.

Nos bastidores, um hook de pré-instalação executava um script chamado bw_setup.js antes de qualquer interação do usuário. Este loader baixava o runtime Bun, um ambiente alternativo ao Node.js, e o utilizava para executar o payload principal, denominado bw1.js, que era um arquivo de 9,7 MB de JavaScript ofuscado. A escolha do Bun foi estratégica.

Regras de detecção em EDRs e SIEMs monitoram processos suspeitos do Node.js durante instalações de pacotes. Contudo, um processo bun passa despercebido pela maioria dessas ferramentas.

Leia Mais

Após vazamento, Claude Code pode ser usado de graça

Ferramentas de segurança como o Harden Runner, da StepSecurity, bloquearam a tentativa de exfiltração ao detectar uma conexão não autorizada com o domínio audit.checkmarx.cx.

O stealer rastreava três categorias específicas de alvos. As credenciais locais incluíam chaves SSH, configurações do Git, histórico de shell, tokens npm e GitHub, além de credenciais da AWS e GCP e arquivos .env. Em ambientes de CI/CD, quando a variável GITHUB_ACTIONS era igual a true, o malware ativava um módulo especial para extrair o token de sessão do GitHub CLI utilizando a técnica de memory scraping do processo Runner.Worker e enumerava todos os repositórios acessíveis.

A terceira categoria é incomum para ataques desse tipo, pois o malware enumerava explicitamente ferramentas de codificação com IA, incluindo Claude Code, Cursor, Kiro, Codex CLI e Aider. Arquivos como ~/.claude.json e configurações de servidores MCP eram tratados como alvos prioritários, equiparando-se aos tokens de nuvem.

Além de roubar informações, o malware garantiu persistência injetando o payload em arquivos ~/.bashrc e ~/.zshrc, e utilizava um lock file em /tmp/tmp.987654321.lock para evitar múltiplas execuções simultâneas.

Um malware de 9,7 MB foi ofuscado para dificultar análises; todas as strings eram armazenadas em um array rotacionado acessado por chamadas indexadas em hexadecimal.

Exfiltração, fallback e atribuição complicada

Os dados coletados eram criptografados com AES-256-GCM e transmitidos para audit.checkmarx.cx, um domínio registrado para simular telemetria legítima da Checkmarx. Se esse canal fosse bloqueado, o malware criava repositórios na conta da própria vítima e enviava os dados para lá, tornando o tráfego indistinguível do uso normal da API do GitHub.

Leia Mais

Vírus criado pelos Estados Unidos é descoberto após 20 anos de sabotagem

Os repositórios seguiam uma nomenclatura temática do filme Duna, no formato de palavra-palavra-três dígitos, utilizando termos como atreides, sandworm e harkonnen. Strings ideológicas embutidas no código, como “Shai-Hulud: The Third Coming” e referências ao “Butlerian Jihad”, sugerem uma conexão com uma campanha de supply chain que surgiu no ano anterior, mas com uma assinatura operacional diferente.

Outro fator que complica a atribuição do ataque é um kill switch, no qual o malware encerra a execução silenciosamente ao detectar que o locale do sistema começa com “ru”, verificando variáveis como LC_ALL, LC_MESSAGES e LANG. A Socket observou que a infraestrutura é compartilhada com o grupo TeamPCP, mas as diferenças sugerem um operador distinto, um subgrupo ou uma evolução na abordagem da campanha.

Ataque partiu do comprometimento da conta GitHub de um engenheiro da Bitwarden e não deixou rastros no repositório após a publicação.

Como se proteger

Apenas aqueles que instalaram a versão 2026.4.0 pelo npm durante o período afetado estão em risco. A recomendação é desinstalar o pacote usando npm uninstall -g @bitwarden/cli, limpar o cache com npm cache clean –force e instalar a versão 2026.4.1.

Todas as credenciais armazenadas na máquina devem ser rotacionadas, incluindo tokens do GitHub e npm, chaves SSH, credenciais de nuvem e chaves de API armazenadas em ~/.claude.json ou configurações de MCP.

Leia Mais

Novo vírus ataca NPM para roubar credenciais e dados de usuários

Pipelines de CI/CD que executaram a instalação devem ser considerados totalmente comprometidos, com auditoria dos workflows, branches inesperados e repositórios públicos criados recentemente. Um CVE está sendo emitido para a versão 2026.4.0.

Siga a TecMania nas redes sociais. Para mais notícias sobre segurança e tecnologia, inscreva-se na nossa newsletter e canal do YouTube.

Rolar para cima