Den 22 april upptäcktes en skadlig version av Bitwardens kommandoradsgränssnitt (CLI) på npm under det officiella paketnamnet @bitwarden/[email protected]. Under 93 minuter riskerade alla som installerat paketet att få en bakdörr installerad på sina system. Bitwarden identifierade och avlägsnade snabbt den skadliga versionen och meddelade att inga slutanvändares säkerhetsdatabaser (vaults) eller produktionssystem hade blivit komprometterade.
Säkerhetsföretaget JFrog analyserade den skadliga koden och konstaterade att den inte var inriktad på Bitwardens egna säkerhetsdatabaser. Istället riktade den in sig på kritiska autentiseringsuppgifter som:
- GitHub-tokens
- npm-tokens
- SSH-nycklar
- Shell-historik
- AWS-, GCP- och Azure-legitimationer
- GitHub Actions-sekret
- AI-verktygsinställningar
Dessa uppgifter styr hur utvecklingsteam bygger, distribuerar och hanterar sin infrastruktur. Genom att kompromettera dessa kan angripare få tillgång till servrar, interna repos, molntjänster och automatiseringsflöden.
Varför dessa uppgifter är kritiska
| Typ av uppgift | Vanlig lagringsplats | Operativ betydelse |
|---|---|---|
| GitHub-tokens | Utvecklarlaptops, lokal konfiguration, CI-miljöer | Kan ge tillgång till repos, missbruk av arbetsflöden och lateral rörelse via automation |
| npm-tokens | Lokal konfiguration, release-miljöer | Kan användas för att publicera skadliga paket eller ändra release-processer |
| SSH-nycklar | Utvecklarmaskiner, build-servrar | Kan öppna dörrar till servrar, interna repos och infrastruktur |
| Shell-historik | Lokala maskiner | Kan avslöja inlimmade hemligheter, kommandon och interna värdnamn |
| AWS-, GCP- och Azure-legitimationer | Lokal konfiguration, miljövariabler, CI-sekret | Kan exponera molnresurser, lagring och distributionssystem |
| GitHub Actions-sekret | CI/CD-miljöer | Ger tillgång till automation, build-utdata, distributioner och nedströms-sekret |
| AI-verktygsinställningar | Projektdirektorier, lokal utvecklingsmiljö | Kan exponera API-nycklar, interna endpoints och modellinställningar |
Bitwarden, som betjänar över 50 000 företag och 10 miljoner användare, beskriver sitt CLI som ett kraftfullt och fullt funktionellt verktyg för att hantera säkerhetsdatabaser, inklusive i automatiserade arbetsflöden som använder miljövariabler för autentisering. Npm rekommenderas som den enklaste installationsmetoden för användare som redan är bekanta med registret.
Denna kombination av automatiserad användning, installation på utvecklarmaskiner och officiell distribution via npm placerar CLI:n exakt där högt värderade infrastrukturhemligheter tenderar att lagras. Enligt JFrogs analys omdirigerade den skadliga paketversionen både preinstall-hook och bw-binärens ingångspunkt till en laddare som hämtade Bun-runtime och startade en förkrypterad nyttolast. Kompromissen aktiverades både vid installation och under körning.
En organisation kunde alltså ha kört den bakdörrade CLI:n utan att någonsin komma åt lagrade lösenord, medan skadeprogrammet systematiskt samlade in uppgifter som styr CI-pipelines, molnkonton och distributionsautomation.
Angreppets ursprung
Säkerhetsföretaget Socket menar att attacken tycks ha utnyttjat en komprometterad GitHub Action i Bitwardens CI/CD-pipeline, vilket överensstämmer med ett mönster som forskare på Checkmarx har spårat. Bitwarden har bekräftat att incidenten är kopplad till den bredare Checkmarx-kampanjen för leveranskedjeattacker.
Npm:s säkerhetsmodell bygger på förtroende för publicering. Genom att ersätta långlivade npm-publiseringstokens med OIDC-baserad CI/CD-autentisering minskar systemet risken för denna typ av attacker. Incidenten understryker dock vikten av ytterligare säkerhetsåtgärder för att skydda kritisk infrastruktur.