Malicious Bitwarden CLI Package Compromises npm Registry
Attackers exploited release workflows to distribute backdoored software, targeting developer and infrastructure credentials
نظرة سريعة
- A malicious version of the Bitwarden CLI was distributed via npm for 93 minutes on April 22.
- The attack, linked to a broader supply chain campaign, targeted infrastructure credentials rather than vault data, highlighting critical vulnerabilities in CI/CD release pipelines.
ملخص مُنشأ بالذكاء الاصطناعي
لماذا يهم
Bitwarden is a widely used password management service. The incident involved the compromise of its command-line interface (CLI) package on the npm registry, which is a common distribution method for developer tools.
On Apr. 22, a malicious version of Bitwarden's command-line interface appeared on npm under the official package name @bitwarden/cli. For 93 minutes, anyone who pulled the CLI through npm received a backdoored substitute for the legitimate tool.
Bitwarden detected the compromise, removed the package, and issued a statement saying it found no evidence that attackers accessed end-user vault data or compromised production systems.
Security research firm JFrog analyzed the malicious payload and found it had no particular interest in Bitwarden vaults. It targeted GitHub tokens, npm tokens, SSH keys, shell history, AWS credentials, GCP credentials, Azure credentials, GitHub Actions secrets, and AI tooling configuration files.
These are credentials that govern how teams build, deploy, and reach their infrastructure.
Bitwarden serves over 50,000 businesses and 10 million users, and its own documentation describes the CLI as a “powerful, fully-featured” way to access and manage the vault, including in automated workflows that authenticate using environment variables.
Bitwarden lists npm as the simplest and preferred installation method for users already comfortable with the registry. That combination of automation use, developer-machine installation, and official npm distribution places the CLI exactly where high-value infrastructure secrets tend to live.
JFrog's analysis shows the malicious package rewired both the preinstall hook and the bw binary entrypoint to a loader that fetched the Bun runtime and launched an obfuscated payload. The compromise is fired at install time and at runtime.
An organization could run the backdoored CLI without touching any stored passwords while the malware systematically collected the credentials governing its CI pipelines, cloud accounts, and deployment automation.
Security firm Socket says the attack appears to have exploited a compromised GitHub Action in Bitwarden's CI/CD pipeline, consistent with a pattern Checkmarx researchers have been tracking. Bitwarden confirmed that the incident is connected to the broader Checkmarx supply chain campaign.
The Bitwarden incident shows that the harder problem sits at the workflow layer. If an attacker can exploit the release workflow itself, the “official” badge still accompanies the malicious package. Trusted publishing moves the trust burden upward to the integrity of the workflows and actions that invoke it, a layer that organizations have largely left unexamined.
For developer and infrastructure teams, a compromised release workflow exposes CI pipelines, automation infrastructure, and the credentials that govern them. JFrog's analysis shows that once the malware obtained a GitHub token, it could validate the token, enumerate writable repositories, list GitHub Actions secrets, create a branch, commit a workflow, wait for it to execute, download the resulting artifacts, and then clean up.
Obtaining the token creates an automated chain that transforms a single stolen credential into persistent access across an organization's automation infrastructure. A developer's laptop that installs a poisoned official package becomes a bridge from the host's local credential store to GitHub access to whatever that GitHub token can reach.
Within 60 days, Checkmarx disclosed compromised GitHub Actions workflows and OpenVSX plugins, while the Cloud Security Alliance warned that the TeamPCP campaign was actively compromising open-source projects and CI/CD automation components. Sonatype counted over 454,600 new malicious packages in 2025 alone, bringing the cumulative total to more than 1.2 million. Bitwarden joins a chain of incidents that confirms release workflows and package registries as the primary attack surface.
The precise root cause is not yet public, as Bitwarden has confirmed a connection to the Checkmarx campaign but has not published a detailed breakdown of how the attacker obtained access to the release pipeline.
The strongest outcome for defenders is that this incident accelerates a redefinition of what “official” means. Today, trusted publishing attaches provenance data to each released package, thereby confirming the publisher's identity in the registry. SLSA explicitly documents a higher standard for verifiers to check if provenance matches the expected repository, branch, workflow, and build parameters.
If that standard becomes default consumer behavior, “official” starts to mean “built by the right workflow under the right constraints,” and an attacker who compromises an action but cannot satisfy every provenance constraint produces a package that automated consumers reject before it lands.
ما الذي يجب مراقبته
توقعات الذكاء الاصطناعي — احتمالات وليست حقائق
Increased adoption of SLSA provenance verification by enterprise users.
مرجح · خلال أشهر
Further disclosures of compromised CI/CD workflows in other open-source projects.
مرجح جداً · خلال أشهر
أسئلة مفتوحة
- What was the specific entry point used to compromise the release pipeline?
- Are there other packages affected by the same Checkmarx campaign that remain undetected?






