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.