対象:Swarm(Ethersphereの分散型ストレージ)のnpmパッケージ@ethersphere/bee-jsを使う開発者・CI運用者と、Swarm Desktopでノードを動かしている人。本記事はGitHubの勧告とEthersphereのGitHub上の記載にもとづく解説で、マルウェアの動作の詳細と侵害の痕跡(IoC)は扱いません。
続報待ち:この記事は公式発表に合わせて更新します
- 対象者
Swarm(Ethersphereの分散型ストレージ)のnpmパッケージ@ethersphere/bee-jsを使う開発者・CI運用者と、Swarm Desktopでノードを動かしている人。
- 影響が確認された範囲表で見る ↓
- 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日公開)
- 最終確認日時
- 2026年11月10日時点
発表の続報予定と確認の記録
GitHubの勧告は2026年11月9日に公開されました。Ethersphereのリポジトリでは、2026年11月10日に確認した範囲で、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-jsの13.3.0がないかを確かめる。勧告が示す影響版は13.3.0のみ - Swarm Desktop:アプリの版が0.56.2だったか、起動したかを確かめる。セキュリティ企業の解析によれば、Windowsのx64とApple Siliconでは自動更新でも配られた
- 13.2.0以前のbee-jsと、Swarm Desktop 0.56.1は影響を受けない(セキュリティ企業の解析)
- 確かめられなければ対象として扱う(当サイトの補足)
該当したら:その端末・CIを侵害済みとして扱う
勧告は、このパッケージを入れた・動かしたコンピューターを完全に侵害されたものとして扱い、パッケージを削除するよう案内しています。ただし、削除しても入れたことで動いた悪意あるソフトがすべて消えるとは限らない、とも警告しています。
- 端末は、ネットワークから切り離し、可能なら作り直す。CIの環境は、使い捨ての実行環境を作り直す
- 以降の作業は、侵害されていない別のコンピューターから行う
Swarmのノード運用者:新しい鍵を作り、資金を移す
セキュリティ企業の解析によれば、Swarmのノードの設定ファイル(平文のパスワードを含む)と、暗号化されたウォレットの鍵が狙われました。この解析の案内は次のとおりです。
- パスワードとウォレットの鍵が盗まれたものとして扱う
- クリーンな端末で新しい鍵を作り、資金・チェックブックの残高・ステークをそこに移す
- 悪意あるソフトが残した常駐の設定(ユーザー権限の自動起動、遠隔操作ソフトなど)がないか確かめる。アプリを入れ直しても消えないことがある
実際に盗まれたか、被害があったかは公表されていません。確認できないうちは、盗まれた前提で動くのが安全です(当サイトの見解)。
認証情報を入れ替える:その端末・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上のリリースノート、セキュリティ企業の解析にもとづきます。時刻は特に書かない限りUTCで、括弧内は日本時間です。マルウェアの通信先やファイルの値は載せていません。
11月6日
セキュリティ企業の解析によれば、Ethersphereのリポジトリから秘密情報を取り出そうとする試みがあったが失敗した。同社は持ち出しはなかったと評価している(確度は中程度)。11月8日ごろ
悪意あるコミットが作られる。コミットの時刻表示は23:59だが、これは設定で変えられる値(セキュリティ企業の解析)。11月9日 00:09(09:09)
bee-js 13.3.0がnpmにlatestとして公開される(セキュリティ企業の解析)。00:43〜00:44(09:43〜09:44)
Swarm Desktop 0.56.2の自動更新の配信が、Windows(x64)は00:43から、Apple Siliconは00:44から始まる(セキュリティ企業の解析)。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を置き換えると記載。詳細な説明はなし
- 配布の範囲(セキュリティ企業の解析)
- bee-js 13.3.0はnpm、Swarm Desktop 0.56.2はGitHubのリリース。インストール時、またはアプリの起動のたびに、遠隔のコードを読み込んで実行する仕組みが入っていた。Linuxのパッケージは自動更新の対象ではないが、影響は受ける
- 狙われたもの(セキュリティ企業の解析)
- Swarmのノードの設定ファイル(平文のパスワードを含む)と暗号化されたウォレットの鍵。インストールした利用者やCIがたどれるもの全般も対象
- リリースの仕組み(セキュリティ企業の解析)
- GitHubのアカウント2つ(保守担当者と、リリース自動化)が乗っ取られた。乗っ取りの起点は説明されていない。公開の手順が保護されたブランチかを確かめなかったため、正規の公開の手順の中で悪意あるコードが動いた
- 被害の有無
- 盗まれた鍵・資金の被害は、確認した範囲では公表されていない
分かっていること・分かっていないこと
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のパッケージは、入れた人の権限で動き、インストールのときに自動で動く仕組みもあります。開発者のPCやCIで動けば、そこにある環境変数、ファイル、クラウドへの権限に届きます。デスクトップのアプリは、起動のたびに動くため、アプリの更新の仕組みを通じて、短い時間でも多くの端末に届きます。
暗号資産のノードや開発では、鍵と、それを開くパスワードが同じ端末に置かれていることがあり、片方が見られると、資金の移動までつながりえます。正規の配布元から、正規の名前と版で配られる点が、名前の打ち間違いを狙う攻撃と違うところです。同じ型の事案として LiteLLM 1.107.0への混入、Trivyのサプライチェーン侵害があります。
利用する側が見直すこと
本節は同社の対応を評価するものではありません。公表された経緯から、利用する側で次の事故に備えられる点に絞ります。
公開されたばかりの版を、自動で取り込まない
今回の悪意ある版が公開されていたのは、npmで約75分でした。ロックファイルで版を固定し、CIではnpm ciのようにロックファイルどおりに入れ、公開から一定の日数が過ぎた版だけを使う設定(pnpmのminimumReleaseAge、uvのexclude-newerなど)を入れると、短時間で取り下げられた版を取り込みにくくなります。考え方は npmサプライチェーン攻撃の守り方 にまとめています。
インストール時のスクリプトを、必要なものだけに絞る
セキュリティ企業の解析によれば、bee-jsのマルウェアはインストール時のスクリプトで動きました。依存パッケージのインストール時のスクリプトは、既定で止める(--ignore-scripts、pnpmの許可リストなど)設定にして、必要なものだけを許可すると、同じ型の混入の影響を小さくできます(当サイトの補足)。
公開の履歴の証明があっても、安全とは限らない
セキュリティ企業の解析によれば、今回のnpmのパッケージには、正規の公開の手順で作られたことを示す証明が付いていました。正規の手順の中で悪意あるコードが動いたためです。証明は、どこで作られたかを示すもので、中身が安全かどうかを保証しません(当サイトの補足)。
ウォレットの鍵とパスワードを、同じ端末に平文で置かない
セキュリティ企業の解析によれば、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
- セキュリティ企業の解析「bee-jsとSwarm Desktopのリリースの侵害」(補助。公開されていた時間、自動更新、狙われた情報、リリースの仕組みの悪用) — socket.dev
更新履歴
2026-11-10:初版。GitHubの勧告(2026年11月9日)と、EthersphereのGitHub上のリリースノート、セキュリティ企業の解析にもとづく。Ethersphere自身の詳しい告知は確認できていない。公式の案内が出たら更新する。
次に読む
- 盗まれたトークンの失効の順序:npmサプライチェーン攻撃の守り方
- 同じ型の事案:LiteLLM 1.107.0に認証情報を盗むマルウェアが混入 / Trivyのサプライチェーン侵害で、CIでTrivyを使っている人がやること
- 秘密の置き方:.envとAPIキーは何が危ないのか
- 依存関係の点検:OSV-Scannerで依存関係を点検する
- 用語:マルウェアとは / バックドアとは
- 2026年の他の事案:情報漏えい・サイバー攻撃の一覧(国内・海外)