No dia 22 de abril, uma versão maliciosa do Bitwarden CLI foi publicada no npm com o nome oficial @bitwarden/[email protected]. Durante 93 minutos, qualquer usuário que instalasse o pacote recebeu uma versão backdoored da ferramenta, projetada para coletar credenciais sensíveis.

O Bitwarden identificou a violação, removeu o pacote malicioso e emitiu um comunicado assegurando que não há evidências de acesso a dados de usuários ou comprometimento de sistemas de produção.

A empresa de segurança JFrog analisou o payload malicioso e descobriu que o alvo não eram os cofres do Bitwarden, mas sim tokens de GitHub, npm, chaves SSH, histórico de shell, credenciais de AWS, GCP, Azure, segredos do GitHub Actions e arquivos de configuração de ferramentas de IA.

Credenciais-alvo e seu impacto

Esses dados são essenciais para o funcionamento de equipes de desenvolvimento, pois controlam o acesso a repositórios, pipelines de CI/CD e infraestrutura na nuvem. Veja abaixo os principais alvos e seus riscos:

  • Tokens do GitHub: Acessam repositórios, permitem abusar de workflows e mover lateralmente dentro de ambientes automatizados.
  • Tokens do npm: Podem ser usados para publicar pacotes maliciosos ou alterar fluxos de release.
  • Chaves SSH: Abrem acesso a servidores, repositórios internos e infraestrutura crítica.
  • Histórico de shell: Revelam comandos executados, segredos colados e detalhes de workflows internos.
  • Credenciais da AWS/GCP/Azure: Expõem workloads na nuvem, armazenamento e sistemas de automação.
  • Segredos do GitHub Actions: Permitem acesso a pipelines de automação, saídas de build e implantações downstream.
  • Arquivos de configuração de IA: Podem expor chaves de API, endpoints internos e configurações de modelos.

O Bitwarden atende mais de 50 mil empresas e 10 milhões de usuários, e sua documentação descreve o CLI como uma ferramenta ‘poderosa e completa’ para gerenciar cofres, inclusive em fluxos automatizados que usam variáveis de ambiente para autenticação.

A empresa recomenda o npm como o método mais simples e preferencial para instalação, o que, combinado ao uso em ambientes de desenvolvimento e automação, torna o CLI um alvo estratégico para ataques.

Como funcionou o ataque?

Segundo a análise da JFrog, o pacote malicioso alterou tanto o preinstall hook quanto o entrypoint do binário bw, redirecionando para um carregador que baixava o runtime Bun e executava um payload ofuscado. O malware era ativado tanto na instalação quanto durante a execução.

Uma organização poderia usar o CLI backdoored sem sequer acessar senhas armazenadas, enquanto o malware coletava sistematicamente credenciais de pipelines CI, contas na nuvem e automações de deploy.

A empresa de segurança Socket identificou que o ataque explorou um GitHub Action comprometido no pipeline de CI/CD do Bitwarden, padrão também observado pela Checkmarx em campanhas recentes de supply chain. O Bitwarden confirmou que o incidente está ligado a essa campanha mais ampla.

O modelo de confiança do npm e seus limites

O npm foi projetado para mitigar riscos como esse com um modelo de publicação confiável. No entanto, a substituição de tokens de publicação de longa duração por autenticação baseada em OIDC para CI/CD ainda deixa lacunas que podem ser exploradas por atacantes.