Ethersphere bee-js npm maintainer account compromised, version 13.3.0 backdoored

CriticalCompromisenpm

On 9 November 2026 a malicious @ethersphere/bee-js 13.3.0 was published to npm via a compromised release identity. The version contains a postinstall hook that downloads and executes remote code, stealing Swarm node keys and installing a persistent remote shell.

Published 9 Nov 2026 · Updated 10 Nov 2026

At a glancenpm-2026-11-09-ethersphere-bee-js-compromise
1
Package tracked1 malicious version

Every version named by the advisory is in the scanner, so a lockfile check finds it directly.

Severity
Critical
Type
Compromise
Published
9 Nov 2026
Last updated
10 Nov 2026
Ecosystems
npm
Detected by
StepSecurity

Compromise. A legitimate, already-used package, maintainer account, CI pipeline, or release tag was hijacked and a malicious version was published under a name people already depend on.

What happened

The full picture

At 00:09 UTC on 9 November 2026, @ethersphere/bee-js version 13.3.0 was published to npm via a compromised developer access key. The malicious version was live for approximately 75 minutes before npm pulled it at 01:25 UTC, but the tarball may have been cached by third-party mirrors such as Huawei Cloud.

The release carried valid SLSA provenance linked to the legitimate repository, meaning automated verification tools would have accepted it. StepSecurity identified it as malicious and attributed the attack to misuse of the bee-worker release identity rather than a registry-side vulnerability.

The payload adds a postinstall hook that downloads and executes remote JavaScript. It steals Swarm Desktop node private keys and encrypted wallet material, and installs a persistent remote-shell agent on Windows, macOS and Linux. Swarm Desktop 0.56.2, which bundled bee-js, was also backdoored; the Ethersphere team replaced it with 0.56.3 the same day.

The Ethersphere team acknowledged the incident via GitHub issue #1294. The last legitimate release is 13.2.0. Dependents such as @ethersphere/swarm-cli 3.7.0 pin ^13.2.0, which would resolve to 13.3.0 on a fresh install.

credential-theftaccount-takeoverobfuscation
Affected packages

1 package 1 version

These are usually pulled in as transitive dependencies rather than installed directly. Check your whole tree at once. It runs in your browser and nothing is uploaded.

Impact

What it does if you installed it

  • Credential theft: Swarm Desktop node private keys are exfiltrated
  • Persistent backdoor: a remote-shell agent is installed on the host
  • Downstream risk: dependents using ^13.x ranges may pull in 13.3.0 via lockfile updates; third-party npm mirrors may still serve the cached tarball
What to do

Clean-up steps

  1. Pin @ethersphere/bee-js to 13.2.0 and delete node_modules, then reinstall
  2. If 13.3.0 was installed, treat the host as fully compromised: isolate, image, and rebuild
  3. Rotate all Swarm node keys, cloud credentials, and registry tokens accessible from the host
  4. Audit npm publish history for unexpected releases under accounts that ran on the compromised host
  5. Check lockfiles and CI logs for transitive pulls of 13.3.0
References

Sources

npm-2026-11-09-ethersphere-bee-js-compromiseBack to incidentsSubmit a correction
Am I affected?

Check your lockfile against this and every other incident.

Paste a lockfile and it is matched on your own device against every compromised version we track. Nothing is uploaded and there is no account.