6 pontos por darjeeling 6 일 전 | 4 comentários | Compartilhar no WhatsApp

A equipe de pesquisa de segurança da JFrog descobriu que a versão 2026.4.0 de @bitwarden/cli no npm foi sequestrada. Mantendo intactos os metadados e a identidade visual legítimos do Bitwarden, apenas o script preinstall e o ponto de entrada do binário bw foram substituídos por um loader malicioso (bw_setup.js).

Como funciona

Durante a instalação, o loader primeiro baixa o runtime Bun do GitHub e depois executa uma carga JavaScript ofuscada (bw1.js). O uso de Bun em vez de Node.js é, por si só, uma estratégia para escapar da detecção.

A carga coleta credenciais de forma ampla em estações de trabalho de desenvolvedores e ambientes de CI por meio de três coletores.

  • Coletor de sistema de arquivos: chaves SSH (~/.ssh/), credenciais do Git (.git-credentials), tokens npm (~/.npmrc), .env, credenciais AWS (~/.aws/credentials), credenciais GCP (~/.config/gcloud/credentials.db) etc.
  • Coletor de shell/ambiente: execução do comando gh auth token, varredura de process.env para correspondência de padrões de tokens do GitHub e npm
  • Coletor do GitHub Actions: injeta workflows em repositórios onde o token tem permissão para extrair até os segredos do Actions

O ponto mais notável é que arquivos de configuração de ferramentas de IA e MCP, como ~/.claude.json, ~/.claude/mcp.json e ~/.kiro/settings/mcp.json, também estão incluídos entre os alvos de coleta.

Caminho duplo de exfiltração

Os dados roubados são comprimidos com gzip e transmitidos após passarem por criptografia híbrida AES-256-GCM + RSA-OAEP.

  • Caminho primário: HTTPS POST para audit.checkmarx.cx/v1/telemetry (disfarçando-se como um serviço de segurança legítimo)
  • Caminho secundário (abuso do GitHub): se o caminho primário falhar, o malware procura em mensagens de commit do GitHub um PAT codificado em Base64 duplo com o marcador LongLiveTheResistanceAgainstMachines para extraí-lo. Com o marcador beautifulcastle e verificação de assinatura RSA, ele também recupera dinamicamente um domínio alternativo de exfiltração. Por fim, cria um novo repositório na conta GitHub da vítima e envia o JSON criptografado para o diretório results/.

Identificação da infecção

Os metadados legítimos embutidos do Bitwarden CLI são 2026.3.0, mas a raiz do pacote está marcada como 2026.4.0, o que indica que uma camada maliciosa foi aplicada externamente, e não pelo pipeline normal de build.

Como responder

Se houver histórico de instalação dessa versão, deve-se assumir que todas as credenciais daquele host foram comprometidas.

  • npm uninstall -g @bitwarden/cli e limpeza do cache
  • Rotação completa de GitHub PATs, tokens npm e chaves de acesso AWS
  • Verificação dos logs de auditoria do Azure Key Vault / GCP Secret Manager
  • Revisão do histórico de execuções não autorizadas em workflows do GitHub Actions
  • Bloqueio de rede para audit.checkmarx.cx e 94.154.172.43
  • Verificação de eventual exposição de informações sensíveis em arquivos de configuração de ferramentas de IA (Claude, Kiro etc.)

Mais do que um ladrão comum de credenciais npm, trata-se de um ataque sofisticado que combina comprometimento da cadeia de suprimentos, roubo de segredos em múltiplas etapas e uso do GitHub como infraestrutura ofensiva.

4 comentários

 
savvykang 6 일 전

THE MOST TRUSTED PASSWORD MANAGER
Defenda-se contra hackers e violações de dados

Como o slogan do site da empresa me pareceu sem sentido, cancelei minha conta.

 
t7vonn 6 일 전

Dá até arrepios;; eu usava isso todo dia, e por sorte a parte do Homebrew não foi comprometida.
Nossa… acho que vou ter que remover todas as bibliotecas globais do npm por enquanto, ou então desativar o pre/postinstall.

 
lamanus 5 일 전

O Homebrew passou a desativar postinstall por padrão e permitir apenas em casos excepcionais. Talvez eu tenha dado sorte; como atualizo pelo tag do repositório sem olhar o npm, essa versão acabou passando batida para mim. Recentemente também entrou o cooldown do npm, então provavelmente, mesmo se eu estivesse olhando para o npm, ela não teria sido distribuída.

 
sanghunka 6 일 전

Uau, isso é bem chocante mesmo