For: developers and CI operators who use the Swarm (Ethersphere) npm package @ethersphere/bee-js, and people who run a Swarm node with Swarm Desktop. This article is based on the GitHub advisory and what Ethersphere has published on GitHub. It does not cover how the malware works or indicators of compromise (IoCs).
Developing: this article will be updated as the organisation publishes more
- Who is affected
developers and CI operators who use the Swarm (Ethersphere) npm package @ethersphere/bee-js, and people who run a Swarm node with Swarm Desktop.
- Confirmed so farSee the table ↓
- Affected bee-js version
- Treatment of affected machines
- Rotating keys and secrets
3 more
- Compromised Swarm Desktop version
- How long each was public
- Delivery by auto-update
Listed as possibly affected
- Theft of node key and password
- Takeover of the release process
- Not yet confirmed
- Whether any keys were stolen or funds lost
- How the intrusion happened (Ethersphere's own account)
- A detailed report and user guidance from Ethersphere
1 more
- How many users were affected
- What to do nowSee the steps ↓
- Check whether you are affected: look for 13.3.0 and 0.56.2
- If affected: treat the machine or CI environment as compromised
- Swarm node operators: create a new key and move the funds
2 more
- Rotate credentials: everything reachable from that machine or CI
- Pin versions and reinstall
- Where to verify (source)All sources ↓
- GitHub Advisory Database, "GHSA-hh7j-5m3j-23pf: Malware in @ethersphere/bee-js" (published November 9, 2026)
- Last checked
- As of November 10, 2026
Follow-up plans and what we checked
The GitHub advisory was published on November 9, 2026. When we checked on November 10, 2026, Ethersphere's bee-js releases page still listed 13.2.0 as the latest, with no 13.3.0 entry. The Swarm Desktop 0.56.3 release notes say only that they replace the compromised 0.56.2. We could not find a notice from Ethersphere itself that explains what happened or gives guidance to users.
What bee-js and Swarm Desktop users should do today
Step 1 applies to everyone. Steps 2 onward apply if you installed (or launched) an affected version.
Check whether you are affected: look for 13.3.0 and 0.56.2
- bee-js: check lockfiles,
node_modules, package caches, internal package mirrors and CI logs for@ethersphere/bee-js13.3.0. The advisory lists 13.3.0 as the only affected version - Swarm Desktop: check whether the app version was 0.56.2 and whether you launched it. According to the security firm's analysis, it was also delivered by auto-update to Windows x64 and Apple Silicon
- bee-js 13.2.0 and earlier, and Swarm Desktop 0.56.1, are not affected (the security firm's analysis)
- If you cannot tell, treat it as affected (our addition)
If affected: treat the machine or CI environment as compromised
The advisory says to treat any computer with the package installed or running as fully compromised, and to remove the package. It warns that removal may not clear all the malicious software the install caused.
- Disconnect the machine from the network and, if possible, rebuild it. Recreate disposable CI runners
- Do the rest of the work from a different, uncompromised computer
Swarm node operators: create a new key and move the funds
According to the security firm's analysis, the Bee node's configuration file (which includes a plaintext password) and its encrypted wallet key were targeted. Its guidance:
- Assume the password and wallet key were stolen
- Create a new key on a clean machine and move funds, chequebook balances and stake to it
- Look for persistence left behind by the malware (user-level auto-start entries, remote-control software). Reinstalling the app may not remove it
Whether any keys were actually stolen or any loss occurred has not been published. Until you can confirm otherwise, acting as if they were stolen is the safe course (our view).
Rotate credentials: everything reachable from that machine or CI
The advisory says to rotate all secrets and keys stored on the machine immediately, from a different computer. It does not list them. The following is our addition, in line with the security firm's description of what the installing user or CI job could reach.
- npm and GitHub tokens, cloud keys, SSH keys
- CI secrets, and the short-lived cloud credentials issued to CI (via OIDC)
- Credentials saved in the machine's browser or password store
Setting up the new credential before disabling the old one avoids downtime (our addition). The basics of where to keep keys are in What makes .env files and API keys risky.
Pin versions and reinstall
- bee-js: pin to 13.2.0 (the security firm's guidance). There is no patched version (advisory)
- Swarm Desktop: update to 0.56.3. Linux is not auto-updated and needs a manual update (the security firm's analysis). The update removes the compromised version, but it does not undo what has already run
Installed bee-js 13.3.0 / launched Swarm Desktop 0.56.2
Treat as fully compromised
↓→
Rebuild the machine/CI; rotate keys and secrets from another machine
Move the wallet to a new key and move funds
bee-js 13.2.0 and earlier / Swarm Desktop 0.56.1
Not affected (security firm's analysis)
↓→
Keep versions pinned
bee-js 13.2.0, Desktop 0.56.3
How to read this: we could not find a detailed notice from Ethersphere itself
The affected versions and response in this article come from the GitHub advisory and Ethersphere's release notes. How long each version was public, who received the auto-update, what was targeted, and the abuse of the release process come from a security firm's analysis, not from Ethersphere. As of November 10, 2026 we could not find a detailed notice from Ethersphere, so we will rewrite the text when official guidance appears.
What happened
This section is based on the GitHub advisory, Ethersphere's release notes on GitHub and a security firm's analysis. Times are UTC unless stated, with Japan time in parentheses. Malware communication endpoints and file values are not included.
November 6
According to the security firm's analysis, earlier attempts to extract secrets from Ethersphere's repositories failed, and the firm assessed with moderate confidence that no data was exfiltrated.Around November 8
A malicious commit was made. Its displayed timestamp was 23:59, a value that can be set arbitrarily (the security firm's analysis).November 9, 00:09 (09:09)
bee-js 13.3.0 appeared on npm aslatest(the security firm's analysis).00:43 to 00:44 (09:43 to 09:44)
Auto-updates of Swarm Desktop 0.56.2 were offered to Windows (x64) from 00:43 and to Apple Silicon from 00:44 (the security firm's analysis).01:24 (10:24)
npm removed 13.3.0, about 75 minutes after it appeared (the security firm's analysis).About 09:04 to 09:14 (18:04 to 18:14)
The Swarm Desktop 0.56.2 tag was deleted and the release stopped being public, after about 8.5 hours (the security firm's analysis).November 9
The GitHub advisory GHSA-hh7j-5m3j-23pf was published. Ethersphere released Swarm Desktop 0.56.3, noting in the release notes that it replaces the compromised 0.56.2.
- Affected (advisory)
- npm @ethersphere/bee-js 13.3.0 only. No patched version. Type: malware (embedded malicious code)
- Guidance to users (advisory)
- Treat any computer with it installed or running as fully compromised. Remove the package. Removal may not clear everything. Rotate all secrets and keys immediately from a different computer
- Swarm Desktop (Ethersphere release notes)
- Version 0.56.3, released November 9, replaces the compromised 0.56.2. No further explanation
- Scope of distribution (security firm's analysis)
- bee-js 13.3.0 on npm; Swarm Desktop 0.56.2 as a GitHub release. A loader that fetches and runs remote code ran at install time, or at every app launch. Linux packages were not auto-updated but were still affected
- What was targeted (security firm's analysis)
- The Bee node's configuration file (with a plaintext password) and its encrypted wallet key, plus whatever the installing user or CI job could reach
- Release process (security firm's analysis)
- Two GitHub accounts (a maintainer and the release automation) were taken over; the origin is not explained. Because the publish workflow did not check for a protected branch, the malicious code ran inside the legitimate publish process
- Harm
- No stolen keys or losses had been published in the sources we checked
What is known and what is not
The state as of November 10, 2026. We will update the status column when more is published.
| Item | Content | Status |
|---|---|---|
| Affected bee-js version | @ethersphere/bee-js 13.3.0 only; no patched version | Confirmed (GitHub advisory) |
| Treatment of affected machines | Treat as fully compromised if installed or running | Confirmed (GitHub advisory) |
| Rotating keys and secrets | Immediately, from a different computer | Confirmed (GitHub advisory) |
| Compromised Swarm Desktop version | 0.56.2; replaced by 0.56.3 | Confirmed (Ethersphere) |
| 13.2.0 and earlier, 0.56.1 | Not affected | Not included (security firm's analysis) |
| How long each was public | bee-js 13.3.0 about 75 minutes; Swarm Desktop 0.56.2 about 8.5 hours | Confirmed (security firm's analysis) |
| Delivery by auto-update | Delivered to Windows (x64) and Apple Silicon | Confirmed (security firm's analysis) |
| Theft of node key and password | Configuration file (plaintext password) and wallet key targeted | Possible (security firm's analysis) |
| Takeover of the release process | GitHub maintainer and release automation accounts | Possible (security firm's analysis) |
| Origin of the takeover | Not explained | Under investigation |
| Actual stolen keys or losses | Not published | Not stated |
| Number of affected users | Not published | Not stated |
What can happen when a development package is tampered with
The following is general and does not mean these things happened here.
An npm package runs with the privileges of whoever installs it, and some packages run scripts automatically at install time. Run on a developer PC or CI job, it can reach the environment variables, files and cloud permissions there. A desktop app runs on every launch, so through its update mechanism even a short exposure can reach many machines.
In cryptocurrency node and development setups, a key and the password that unlocks it can sit on the same machine, so seeing one can lead to funds being moved. What sets this apart from typosquatting is that the code comes from the legitimate distribution channel, under the legitimate name and version. Similar cases are LiteLLM 1.107.0 and the Trivy supply-chain compromise.
What users of packages should review
This section is not an assessment of the organisation's response. It is limited to what users can do to prepare for the next incident, based on the published account.
Do not automatically pull versions that were just published
The malicious version was on npm for about 75 minutes. Pinning versions in a lockfile, installing exactly as locked in CI (for example with npm ci), and using only versions published more than a set number of days ago (pnpm's minimumReleaseAge, uv's exclude-newer and similar) makes it harder to pick up a version that is withdrawn within minutes. The approach is covered in Defending against npm supply-chain worms.
Limit install-time scripts to the packages that need them
According to the security firm's analysis, the bee-js malware ran through an install-time script. Turning off install scripts for dependencies by default (--ignore-scripts, an allow-list in pnpm) and allowing only what is needed reduces the effect of this kind of compromise (our addition).
Provenance does not guarantee safety
According to the security firm's analysis, the npm package carried valid provenance attestations, because the malicious code ran inside the real publish workflow. Provenance shows where a package was built; it does not guarantee that the contents are safe (our addition).
Do not keep a wallet key and its password in plaintext on the same machine
According to the security firm's analysis, Swarm Desktop kept the password in plaintext in a configuration file. Keeping keys that hold funds apart from everyday development environments makes it less likely that a compromise of one leads straight to the funds (our addition).
If you publish packages: check release conditions inside the workflow
For maintainers, the security firm's analysis recommends checking inside the publish workflow that the commit is on a protected branch, adding required reviewers and tag restrictions to publishing environments, not passing signing secrets to workflows that run on arbitrary branches, and narrowing and rotating release-bot tokens. If you publish packages, check the same points.
Sources (public records)
The facts in this article come from the public information below. Malware endpoints, file names, hashes and other indicator values are not reproduced.
- GitHub Advisory Database, "GHSA-hh7j-5m3j-23pf: Malware in @ethersphere/bee-js" (published November 9, 2026) — github.com
- Ethersphere "swarm-desktop" GitHub releases (v0.56.3, November 9, 2026; the release notes say it replaces the compromised 0.56.2) — github.com
- Ethersphere "bee-js" GitHub releases (checked November 10; latest is v13.2.0) — github.com
- A security firm's analysis, "The bee-js and Swarm Desktop release compromise" (supporting; how long each was public, auto-update, what was targeted, abuse of the release process) — socket.dev
Update history
2026-11-10: First version. Based on the GitHub advisory (November 9, 2026), Ethersphere's release notes on GitHub and a security firm's analysis. We could not find a detailed notice from Ethersphere itself. We will update when official guidance is published.
Read next
- Order of revoking stolen tokens: Defending against npm supply-chain worms
- Incidents of the same kind: LiteLLM 1.107.0 shipped a credential stealer / What to do if you use Trivy in CI after the supply-chain compromise
- Where secrets live: What makes .env files and API keys risky
- Auditing dependencies: Auditing dependencies with OSV-Scanner
- Terms: What malware is / What a backdoor is
- Other 2026 incidents: Data breaches and cyberattacks of 2026