Hackers Compromised 140+ Mastra npm Packages to Deploy Password-Stealing Malware
2026/06/17 CyberSecurityNews — Mastra-AI npm エコシステムを標的とする、高度なサプライチェーン攻撃が発生した。Microsoft と Socket の研究者が特定したのは、開発者マシン/CI/CD ランナー/ビルド環境に情報窃取ペイロードを展開するよう設計された、141件以上の侵害済みパッケージである。このタイポスクワッティング依存関係を悪用するキャンペーンは、2026年6月17日に検出されたものであり、仮想通貨ウォレットデータやブラウザ履歴といった機密性の高い情報を窃取するための、多段階マルウェアを配布するものである。

ehindero と特定された単一の npm アカウントが、141 個の @mastra/* パッケージの悪意のバージョンを、6月17日 UTC 01:15 〜 02:36 という極めて短い時間内で、一斉に公開したという事実が確認されている。
その一方で、極めて重要な点として挙げられるのは、侵害されたパッケージのコード自体は、正規ビルドとバイト単位で完全に一致しており、変更点は各マニフェストに注入された単一の依存関係のみだった点である。
"easy-day-js": "^1.11.21"
easy-day-js は、人気ライブラリ dayjs を意図的に模倣したタイポスクワッティング・パッケージであり、前日に別アカウント (sergey2016) から公開されていたものである。また、バージョン 1.11.21 は、dayjs のクリーンコピーとして無害な履歴を確立する目的で公開されていたものである。
その一方で、バージョン 1.11.22 では、postinstall フックに武器化されたコードが追加され、node setup.cjs を実行する構成となっていた。npm install の実行過程において、開発者がパッケージをインポート/使用する前に、悪意のペイロードが自動実行される仕組みとなっていた。さらに影響を受けるパッケージには、週あたり 918,000 回以上ダウンロードされる @mastra/core が含まれていることから、このキャンペーンの影響範囲は極めて広大であることが推測される。
Mastra npm パッケージ侵害チェーン
Mastra npm パッケージ侵害チェーンは、以下の二段構成である。
- ステージ_1:ローダー (setup.cjs):obfuscator.io により難読化されたローダーであり、TLS 証明書検証を無効化 (NODE_TLS_REJECT_UNAUTHORIZED=0) し、~/.pkg_history/~/.pkg_logs を書き込むことで被害マシンの識別情報を収集し、23[.]254[.]164[.]92:8000/update/49890878 から第 2 ステージペイロードを取得する。その後に、C2 サーバ 23[.]254[.]164[.]123:443 を指す分離された非表示バックグラウンド・プロセスとして起動し、フォレンジック痕跡を削除するため自己削除を実行する。
- ステージ_2:インプラント (protocal.cjs):約 41 KB のクロスプラットフォーム Node.js タスク実行クライアントであり、Windows では Registry Run キー (NvmProtocal)/macOS では LaunchAgent (com.nvm.protocal.plist)/Linux では systemd ユーザー・ユニット (nvmconf.service) を悪用することで永続化を確立する。これらの仕組みは、正規の Node.js ツールを装うものであり、開発環境に溶け込むよう設計されている。
永続化を確立したインプラントは、C2 サーバへ向けてビーコンを送信し、任意の後続コマンドを待機する。収集機能として挙げられるのは、166 種類の暗号資産ウォレット向けのブラウザ・エクステンション (MetaMask/Phantom/Coinbase Wallet/Binance Wallet/TronLink など) のインベントリや、Node の組み込み SQLite モジュールを介した Chrome/Edge/Brave のブラウザ履歴の流出、実行中プロセスやインストール済みアプリケーションなどに対するホスト偵察などである。
緩和策
影響を受ける @mastra/* バージョンで、npm install を実行したシステムは侵害済みとして扱う必要があるため、開発者は直ちに緩和策を実施する必要がある。具体的には、npm ls easy-day-js を実行して感染の有無を確認し、影響を受けるバージョンを削除し、lockfile を用いて mastra@1.13.0 に固定することが求められる。
さらに全プラットフォームから永続化アーティファクトを手動で削除し、npm トークン/GitHub トークン/クラウド・プロバイダーキー/CI/CD シークレットなどの、インストール環境に存在した可能性のある全認証情報をローテーションする必要がある。高価値の仮想通貨ウォレットについては、クリーンなデバイス上で新規シードフレーズから生成した新規ウォレットへと、資金を移行する必要がある。
また、CI パイプラインでは npm install –ignore-scripts をデフォルト実行とし、lockfile の強制適用/新規公開バージョンに対するクールダウン期間の導入/ビルドプロセスにおける raw IP アドレスへの外部通信の監視を、今後の対策として実施すべきである。
IoC
ネットワーク・インジケータ
| タイプ | インジケータ | 説明 |
|---|---|---|
| IP アドレス | 23.254.164[.]92 | 第 2 段階ペイロード配信サーバ |
| URL | https://23.254.164%5B.%5D92:8000/update/49890878 | 第 2 段階ダウンロード・エンドポイント |
| IP アドレス | 23.254.164[.]123 | C2 流出サーバ |
| URL | https://23.254.164%5B.%5D123:443/49890878 | C2 流出エンドポイント |
| ASN | AS54290 | Hostwinds LLC (攻撃者制御インフラ) |
| ドメイン | hwsrv-1327786.hostwindsdns[.]com | 関連する攻撃者ドメイン |
| ドメイン | hwsrv-1327785.hostwindsdns[.]com | 関連する攻撃者ドメイン |
コードおよび文字列インジケータ
| タイプ | インジケータ | 説明 |
|---|---|---|
| Registry Key | NvmProtocal | Windows HKCU…\CurrentVersion\Run 永続化値 |
| LaunchAgent Label | com.nvm.protocal | macOS ログイン永続化エージェント |
| Systemd Unit | nvmconf.service | Linux systemd ユーザーレベル永続化ユニット |
| Filename | protocal.cjs | 投下される第 2 段階インプラントのファイル名 |
| Directory | NodePackages | Windows/macOS/Linux 全体で使用される投下ディレクトリ名 |
| File | .pkg_history | 一時ディレクトリに書き込まれるローダー・ビーコン・ファイル |
| File | .pkg_logs | XOR エンコードされたキャンペーン・マーカー・ファイル |
| URL Path | /update/49890878 | 第 2 段階ダウンロード・パスおよびボット識別子 |
訳者後書:信頼されている正規の npm パッケージのマニフェストに、攻撃者が悪意の依存関係を注入したことで、サプライチェーン侵害が発生しています。その依存関係には、よく使われるライブラリに名前を似せたタイポスクワッティングの手法が使われていました。さらに、パッケージがインストールされる際に自動的に動作する、postinstall フック (自動実行機能) という仕組みが悪用されています。結果として、開発者がコードを呼び出す前にマルウェアを実行させる仕掛けが機能し、被害が広がりました。ご利用のチームは、ご注意ください。よろしければ、カテゴリー SupplyChain も、ご参照ください。
You must be logged in to post a comment.