適合:使用 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年的資料外洩與網路攻擊