适合:使用 Swarm(Ethersphere)的 npm 包 @ethersphere/bee-js 的开发者和 CI 运维人员,以及用 Swarm Desktop 运行 Swarm 节点的人。本文基于 GitHub 公告以及 Ethersphere 在 GitHub 上发布的内容。不涉及恶意软件的工作原理或入侵指标(IoC)。
事件仍在发展:本文将随机构发布更多信息而更新
- 适用对象
使用 Swarm(Ethersphere)的 npm 包 @ethersphere/bee-js 的开发者和 CI 运维人员,以及用 Swarm Desktop 运行 Swarm 节点的人。
- 已确认的影响范围查看表格 ↓
- 受影响的 bee-js 版本
- 受影响机器的处理
- 轮换密钥和机密
另外3项
- 被攻陷的 Swarm Desktop 版本
- 各版本公开了多久
- 通过自动更新送达
被列为可能涉及的项目
- 节点密钥和密码被盗
- 发布流程被接管
- 尚未确认的事项
- 是否有密钥被盗或资金损失
- 入侵是如何发生的(Ethersphere 自己的说明)
- Ethersphere 的详细报告和用户指引
另外1项
- 有多少用户受到影响
- 现在要做的事查看步骤 ↓
- 确认是否受影响:查找 13.3.0 和 0.56.2
- 如果受影响:把机器或 CI 环境视为已被攻陷
- Swarm 节点运营者:新建密钥并转移资金
另外2项
- 轮换凭据:该机器或 CI 能触及的一切
- 固定版本并重新安装
- 核实来源(出处)全部来源 ↓
- GitHub Advisory Database,“GHSA-hh7j-5m3j-23pf: Malware in @ethersphere/bee-js”(2026年11月9日发布)— github.com
- 最后核实
- 截至2026年11月10日
续报计划与核实记录
GitHub 公告发布于2026年11月9日。2026年11月10日我们查看时,Ethersphere 的 bee-js 发布页面仍把 13.2.0 列为最新版本,没有 13.3.0 的条目。Swarm Desktop 0.56.3 的发布说明只说它取代了被攻陷的 0.56.2。我们没有找到 Ethersphere 自己发布的、说明发生了什么或向用户提供指引的通知。
bee-js 和 Swarm Desktop 用户今天该做什么
第 1 步适用于所有人。从第 2 步起,适用于安装(或启动)过受影响版本的人。
确认是否受影响:查找 13.3.0 和 0.56.2
- bee-js:在锁定文件、
node_modules、包缓存、内部包镜像和 CI 日志中查找@ethersphere/bee-js13.3.0。公告把 13.3.0 列为唯一受影响的版本 - Swarm Desktop:确认应用版本是否为 0.56.2,以及您是否启动过它。据安全公司的分析,它也通过自动更新送达了 Windows x64 和 Apple Silicon
- bee-js 13.2.0 及更早版本以及 Swarm Desktop 0.56.1 不受影响(安全公司的分析)
- 如果无法判断,请按受影响处理(本站的补充)
如果受影响:把机器或 CI 环境视为已被攻陷
公告称,凡是安装或运行了该包的计算机都应视为已被完全攻陷,并要求删除该包。公告警告说,删除可能无法清除安装所带来的全部恶意软件。
- 让机器断开网络,并尽可能重建。重新创建一次性的 CI runner
- 其余工作请在另一台未被攻陷的计算机上完成
Swarm 节点运营者:新建密钥并转移资金
据安全公司的分析,Bee 节点的配置文件(包含明文密码)及其加密的钱包密钥是目标。它的指引如下:
- 假定密码和钱包密钥已被盗
- 在干净的机器上新建密钥,并把资金、chequebook 余额和质押转移过去
- 查找恶意软件留下的持久化(用户级自启动项、远程控制软件)。重新安装应用可能无法清除它
是否真的有密钥被盗或发生损失,尚未公布。在能够确认并非如此之前,按已被盗来行动是稳妥的做法(本站的观点)。
轮换凭据:该机器或 CI 能触及的一切
公告要求立即从另一台计算机上轮换机器上存放的所有机密和密钥,但没有列出具体内容。下面是本站的补充,依据安全公司对安装用户或 CI 任务所能触及内容的描述。
- npm 和 GitHub 令牌、云密钥、SSH 密钥
- CI 机密,以及签发给 CI 的短期云凭据(通过 OIDC)
- 保存在该机器浏览器或密码库中的凭据
先设置好新凭据再停用旧凭据,可以避免停机(本站的补充)。密钥应保存在哪里的基础知识,见.env 文件和 API 密钥为什么有风险。
固定版本并重新安装
- bee-js:固定在 13.2.0(安全公司的指引)。没有已修补的版本(公告)
- Swarm Desktop:更新到 0.56.3。Linux 不会自动更新,需要手动更新(安全公司的分析)。更新会移除被攻陷的版本,但不会撤销已经运行过的内容
安装了 bee-js 13.3.0 / 启动了 Swarm Desktop 0.56.2
视为已被完全攻陷
↓→
重建机器/CI;从另一台机器轮换密钥和机密
把钱包迁移到新密钥并转移资金
bee-js 13.2.0 及更早版本 / Swarm Desktop 0.56.1
不受影响(安全公司的分析)
↓→
保持版本固定
bee-js 13.2.0,Desktop 0.56.3
如何解读:我们没有找到 Ethersphere 自己的详细通知
本文中的受影响版本和应对措施来自 GitHub 公告和 Ethersphere 的发布说明。各版本公开了多久、谁收到了自动更新、目标是什么,以及对发布流程的滥用,都来自一家安全公司的分析,而不是 Ethersphere。截至2026年11月10日,我们没有找到 Ethersphere 的详细通知,官方指引出现后我们会改写正文。
事件经过
本节基于 GitHub 公告、Ethersphere 在 GitHub 上的发布说明以及一家安全公司的分析。除非另有说明,时间均为协调世界时,括号内为日本时间。不包含恶意软件的通信端点和文件值。
11月6日
据安全公司的分析,此前从 Ethersphere 的代码仓库中提取机密的尝试失败了,该公司以中等把握判断没有数据被窃取。11月8日前后
有人提交了一个恶意提交。其显示的时间戳为 23:59,这个值可以被任意设置(安全公司的分析)。11月9日 00:09(09:09)
bee-js 13.3.0 以latest的身份出现在 npm 上(安全公司的分析)。00:43 至 00:44(09:43 至 09:44)
Swarm Desktop 0.56.2 的自动更新从 00:43 起提供给 Windows(x64),从 00:44 起提供给 Apple Silicon(安全公司的分析)。01:24(10:24)
npm 撤下了 13.3.0,距其出现约 75 分钟(安全公司的分析)。约 09:04 至 09:14(18:04 至 18:14)
Swarm Desktop 0.56.2 的标签被删除,该发布不再公开,已公开约 8.5 小时(安全公司的分析)。11月9日
GitHub 公告 GHSA-hh7j-5m3j-23pf 发布。Ethersphere 发布了 Swarm Desktop 0.56.3,并在发布说明中注明它取代了被攻陷的 0.56.2。
- 受影响(公告)
- 仅 npm @ethersphere/bee-js 13.3.0。没有已修补的版本。类型:恶意软件(嵌入的恶意代码)
- 对用户的指引(公告)
- 凡是安装或运行了它的计算机都视为已被完全攻陷。删除该包。删除可能无法清除一切。立即从另一台计算机上轮换所有机密和密钥
- Swarm Desktop(Ethersphere 发布说明)
- 11月9日发布的 0.56.3 取代了被攻陷的 0.56.2。没有进一步说明
- 分发范围(安全公司的分析)
- npm 上的 bee-js 13.3.0;作为 GitHub 发布的 Swarm Desktop 0.56.2。获取并运行远程代码的加载器在安装时运行,或在应用每次启动时运行。Linux 软件包不会自动更新,但同样受影响
- 目标(安全公司的分析)
- Bee 节点的配置文件(含明文密码)及其加密的钱包密钥,以及安装用户或 CI 任务能触及的一切
- 发布流程(安全公司的分析)
- 两个 GitHub 账户(一个维护者和发布自动化)被接管;来源没有说明。由于发布工作流没有检查受保护分支,恶意代码在合法的发布流程中运行
- 危害
- 在我们查看的来源中,没有公布被盗密钥或损失
已知与未知
截至2026年11月10日的状态。有更多信息公布时,我们会更新状态一栏。
| 项目 | 内容 | 状态 |
|---|---|---|
| 受影响的 bee-js 版本 | 仅 @ethersphere/bee-js 13.3.0;没有已修补的版本 | 已确认(GitHub 公告) |
| 受影响机器的处理 | 已安装或正在运行的,视为已被完全攻陷 | 已确认(GitHub 公告) |
| 轮换密钥和机密 | 立即,从另一台计算机上进行 | 已确认(GitHub 公告) |
| 被攻陷的 Swarm Desktop 版本 | 0.56.2;由 0.56.3 取代 | 已确认(Ethersphere) |
| 13.2.0 及更早版本、0.56.1 | 不受影响 | 不在范围内(安全公司的分析) |
| 各版本公开了多久 | bee-js 13.3.0 约 75 分钟;Swarm Desktop 0.56.2 约 8.5 小时 | 已确认(安全公司的分析) |
| 通过自动更新送达 | 送达 Windows(x64)和 Apple Silicon | 已确认(安全公司的分析) |
| 节点密钥和密码被盗 | 配置文件(明文密码)和钱包密钥是目标 | 可能(安全公司的分析) |
| 发布流程被接管 | GitHub 维护者和发布自动化账户 | 可能(安全公司的分析) |
| 接管的起因 | 没有说明 | 调查中 |
| 实际被盗的密钥或损失 | 未公布 | 未说明 |
| 受影响用户数量 | 未公布 | 未说明 |
开发包被篡改时可能发生什么
以下是一般性说明,并不意味着本次事件中发生了这些事。
npm 包以安装者的权限运行,有些包在安装时会自动运行脚本。在开发者电脑或 CI 任务上运行时,它可以触及那里的环境变量、文件和云权限。桌面应用在每次启动时都会运行,所以通过它的更新机制,即使很短的暴露时间也可能触及许多机器。
在加密货币节点和开发环境中,密钥和解锁它的密码可能放在同一台机器上,所以被看到其中之一就可能导致资金被转走。它与拼写仿冒的不同之处在于,代码来自合法的分发渠道,使用的是合法的名称和版本。类似的案例有LiteLLM 1.107.0和Trivy 供应链被攻陷事件。
包的使用者应该检查什么
本节不是对该机构应对的评价。仅限于根据已公布的情况,使用者为应对下一次事件可以做的准备。
不要自动拉取刚发布的版本
恶意版本在 npm 上停留了约 75 分钟。在锁定文件中固定版本、在 CI 中严格按锁定内容安装(例如使用 npm ci),并且只使用发布超过一定天数的版本(pnpm 的 minimumReleaseAge、uv 的 exclude-newer 等),可以让您更不容易拉取到几分钟内就被撤回的版本。做法见防御 npm 供应链蠕虫。
只让需要的包运行安装时脚本
据安全公司的分析,bee-js 的恶意软件是通过安装时脚本运行的。默认关闭依赖的安装脚本(--ignore-scripts、pnpm 的允许列表),只允许必需的,可以降低这类攻陷的影响(本站的补充)。
来源证明不等于安全保证
据安全公司的分析,该 npm 包带有有效的来源证明(provenance),因为恶意代码是在真实的发布工作流内部运行的。来源证明表明的是包在哪里构建,并不保证内容是安全的(本站的补充)。
不要把钱包密钥和它的密码以明文放在同一台机器上
据安全公司的分析,Swarm Desktop 把密码以明文保存在配置文件中。把存放资金的密钥与日常开发环境分开,可以降低一边被攻陷后直接导致资金受损的可能(本站的补充)。
如果您发布包:在工作流内部检查发布条件
对于维护者,安全公司的分析建议:在发布工作流内部检查提交是否在受保护分支上,为发布环境添加必需的审核人和标签限制,不要把签名机密传给在任意分支上运行的工作流,并缩小发布机器人令牌的权限并轮换。如果您发布包,请检查同样的几点。
信息来源(公开记录)
本文中的事实来自以下公开信息。不转载恶意软件端点、文件名、哈希及其他指标值。
- GitHub Advisory Database,“GHSA-hh7j-5m3j-23pf: Malware in @ethersphere/bee-js”(2026年11月9日发布)— github.com
- Ethersphere “swarm-desktop” GitHub 发布页(v0.56.3,2026年11月9日;发布说明称其取代被攻陷的 0.56.2)— github.com
- Ethersphere “bee-js” GitHub 发布页(11月10日确认;最新为 v13.2.0)— github.com
- 一家安全公司的分析,“The bee-js and Swarm Desktop release compromise”(辅助来源;各版本公开了多久、自动更新、目标、对发布流程的滥用)— socket.dev
更新记录
2026-11-10:首版。基于 GitHub 公告(2026年11月9日)、Ethersphere 在 GitHub 上的发布说明以及一家安全公司的分析。我们没有找到 Ethersphere 自己的详细通知。官方指引发布后,我们将更新。
延伸阅读
- 被盗令牌的撤销顺序:防御 npm 供应链蠕虫
- 同类事件:LiteLLM 1.107.0 带有凭据窃取程序 / 供应链被攻陷后,在 CI 中使用 Trivy 的人该怎么做
- 机密存放在哪里:.env 文件和 API 密钥为什么有风险
- 审计依赖:用 OSV-Scanner 审计依赖
- 术语:什么是恶意软件 / 什么是后门
- 2026年的其他事件:2026年的数据泄露与网络攻击