npmに「自己増殖するウイルス」Miasma、Microsoftにも飛び火
2026年6月、Red Hatのnpmパッケージ32本に自己増殖型ワーム「Miasma」が混入。npmやクラウドの認証情報を盗み、Microsoftの73リポジトリにも波及しました。Shai-Huludから続くnpmワーム連鎖の構造と、開発者が今すぐできる対策をSynthが整理します。
目次
まず結論
最初に要点だけまとめます。少し専門的な話なので、結論を先に。
2026年6月初め、**Red Hat(レッドハット)が公開しているnpmパッケージ32本に、「Miasma(ミアズマ)」**と名付けられた悪意あるコードが仕込まれました。これがただのウイルスと違うのは、**自分で増殖する「ワーム」**だという点。感染した開発者の権限を使って、勝手に別のパッケージへ感染を広げていきます。そして6月5日には、**Microsoft(マイクロソフト)**のGitHubにも飛び火し、73のリポジトリが緊急で無効化されました。
- ニュース元1: Preinstall to persistence: Inside the Red Hat npm Miasma credential-stealing campaign(Microsoft Security Blog, 2026/6/2)
- ニュース元2: Miasma Worm Hits 73 Microsoft GitHub Repositories in Major Supply Chain Attack(The Hacker News)
要点を5つに。
- 何:npmパッケージに自己増殖型ワーム「Miasma」が混入。npm・GitHub・AWS・Azure・Google Cloudの認証情報(パスワードやトークン)を盗む。
- どこ:
@redhat-cloud-servicesというRed Hatの配布枠の32本(90バージョン超)。週あたり8万〜11万回ダウンロードされる枠。 - どうやって:パッケージを
npm installした瞬間に動く「preinstallフック」を悪用。盗んだトークンで他のパッケージにも感染を広げる。 - 被害の連鎖:6月5日にMicrosoftのGitHub組織に到達。GitHubが73リポジトリを無効化。
- 背景:2025年9月の「Shai-Hulud(シャイ・フルード)」から続く、npmワームの連鎖の最新形。
それでは、これが何を意味するのか、初心者の方にもわかるように噛み砕いていきます。
1. そもそも「npmサプライチェーン攻撃」とは
まず土台から。**npm(エヌピーエム)**は、JavaScriptのプログラムを作るときに使う「部品の配布所」です。世界中の開発者が作った便利な部品(パッケージ)が置いてあって、npm installという一行で自分のプロジェクトに取り込めます。
ここに、ひとつ怖い真実があります。
npm installは、見ず知らずの人が書いたコードを、自分のパソコンで実行することとほぼ同じ。
普段は問題になりません。でも、もし信頼していた部品が乗っ取られて、悪いコードを仕込まれていたら——あなたのパソコンやサーバーで、そのコードが勝手に動いてしまいます。これが「サプライチェーン攻撃」です。製品そのものではなく、製品を作る「材料の流れ(供給網=サプライチェーン)」を狙う手口ですね。
しかも厄介なのは、自分が直接使っていない部品でも感染しうること。あなたが入れた部品が、裏でまた別の部品を使っている(依存している)と、その奥の部品が汚染されていれば連鎖でやられます。この記事の元になっている問題は、まさにここを突いています。AIコーディングツールがこの盲点をどう広げるかは、以前書いたAIコーディングツール時代に急増、npmサプライチェーン攻撃の正体と対策もあわせてどうぞ。
2. Miasmaの何が新しいのか
今回の「Miasma」が普通の混入事件と違うのは、大きく3つです。
① 正規の「お墨付き」を持って配られた
Miasmaは、Red Hatの正規のCI/CD(自動ビルド・公開の仕組み)を乗っ取って配布されました。具体的には、RedHatInsights/javascript-clientsという開発パイプラインに侵入し、GitHub ActionsのOIDCという正規の公開ルートを使って悪意あるバージョンを出したのです。
何が問題かというと、これらのパッケージは本物の署名(来歴=provenance)付きで配られた点。「正規の手続きで作られた本物ですよ」という証明書がついていたので、ぱっと見では偽物と気づけない。コードの中には「Miasma: The Spreading Blight(蔓延する悪疫)」という目印が埋め込まれていました。
② 入れた瞬間に動き、認証情報を根こそぎ盗む
汚染パッケージをnpm installすると、4.2MBの難読化された(読めなくした)プログラムが「preinstallフック」という仕組みで即座に起動します。これは「インストール準備中に実行されるコード」で、利用者が何かする前に動いてしまう。
起動後はBunという別のプログラム実行環境をこっそり落としてきて、本命の処理を走らせます。狙いは認証情報の窃取。GitHub、npm、AWS、Azure、Google Cloud——主要なクラウドのトークンやパスワードを片っ端から探して、外部へ送り出します。
③ 自分で増殖する「ワーム」
そして最大の特徴が、自己増殖(ワーム化)です。Miasmaは盗んだnpmのトークンを使って、その人がアクセスできるすべてのリポジトリと組織を調べ上げ、公開権限のあるパッケージに自分の汚染版を勝手に再公開します。
つまり、一人感染すると、その人の権限が及ぶ範囲に自動でばらまかれていく。後の波ではbinding.gypという別の仕組み(package.jsonのスクリプトを使わずに、インストール時にコードを動かす手口)も使われ、検知をすり抜けようとしました。だからこそ、Red Hatの枠からMicrosoftのGitHubまで、わずか数日で広がったわけです。
⚠️ ここがポイント 普通の混入事件なら「その1本を消せば終わり」です。でもワームは人から人(正確には権限から権限)へ自動で飛び火する。火を消しても、別の場所で勝手に再点火する。これがMiasmaの本当の怖さです。
3. これは「初めて」じゃない——npmワームの連鎖
ここで冷静になりたいのは、Miasmaは突然湧いたわけではないということ。npmの自己増殖ワームは、ここ1年で何度も繰り返されています。過去事例と並べると、構造的な問題が見えてきます。
| 時期 | 名称 | 規模・特徴 |
|---|---|---|
| 2025年9月 | Shai-Hulud | npm初の本格的な自己増殖ワーム。500本超のパッケージに感染。GitHubにトークンを抜き取り。 |
| 2025年11月 | Shai-Hulud 2.0 | より攻撃的な変種。約796本のパッケージを乗っ取り。 |
| 2026年5月 | typosquat/依存混同系 | 名前を似せた偽パッケージで、クラウドやCI/CDの秘密情報を窃取。 |
| 2026年6月 | Miasma(今回) | Red Hatの正規CI/CDを乗っ取り。署名付きで配布、Microsoftにも波及。 |
並べてみると、同じ「自己増殖×認証情報窃取」の型が、名前を変えて繰り返されているのがわかります。Miasmaは「Mini Shai-Hulud」とも呼ばれていて、過去のワームの手口を受け継いだ進化版なんです。
なぜ繰り返されるのか。わたしの整理では、構造的な理由が3つあります。
npm installが無防備すぎる:インストール時にコードが自動実行される仕組み自体が、攻撃の入口になっている。- トークンの権限が広すぎる:一つのトークンで多くのパッケージを公開できるため、一人盗まれると被害が一気に広がる。
- 依存関係が深すぎる:現代のアプリは数百〜数千の部品に依存していて、全部を人間が見張るのは不可能。
つまりこれは「Red Hatが油断していた」という個社の話ではなく、npmという生態系(エコシステム)そのものが抱える病だと見るべきです。
4. あなたへの影響
立場別に、「で、わたしは何をすればいい?」を具体的にまとめます。
一般のユーザー(開発者ではない人)へ
正直に言うと、今回の件で、あなたのスマホやChatGPTが直接危険になるわけではありません。 これは主に「ソフトを作る側」の問題です。ただ、間接的な影響はあります。あなたが使っているWebサービスやアプリの「裏側」がnpmで作られていれば、開発元が感染すれば情報漏えいにつながる可能性はゼロではない。**過度に怖がる必要はないけれど、「便利なアプリの裏側は意外ともろい」**ことは知っておいて損はありません。パスワードの使い回しをやめる、二段階認証を入れる——基本の自衛は、こういうときに効きます。
エンジニア・開発者へ(ここが本題)
あなたが今日できる、現実的な対策を挙げます。
- ✅ インストール時スクリプトを止める:
npm install --ignore-scriptsを基本にする。preinstallフック型の攻撃の多くを無力化できます。 - ✅ バージョンを固定する:
package-lock.jsonを必ずコミットし、npm ciで再現性のあるインストールを。勝手に最新版を拾わせない。 - ✅ トークンの権限を絞る:公開トークンは必要最小限に。期限を短く、用途を分ける。漏れても被害を局所化できます。
- ✅ CI/CDを点検する:今回はCI/CDの乗っ取りが起点でした。GitHub ActionsのOIDC設定や、誰がパッケージを公開できるかを見直す。
- ✅ 怪しい兆候が出たら即トークン更新:もし汚染版を入れた疑いがあれば、npm・GitHub・各クラウドのトークンをすべて再発行し、不審なコミットがないか確認を。
- ✅
@redhat-cloud-services系を使っているか確認:依存関係に含まれていないか棚卸しし、該当すればクリーンなバージョンへ。
💡 正直な本音 「依存を全部監査しろ」と言うのは簡単ですが、現実には無理ゲーに近い。だからこそ、**「最小権限」と「インストール時に勝手にコードを動かさせない」**の2つに絞るのが、費用対効果が高いとわたしは思います。完璧を目指すより、被害を小さくする発想が現実的です。
経営者・チームリーダーへ
「うちはJavaScript使ってないから関係ない」と思っていませんか。それ、危険です。社内のWebアプリ、社外向けサイト、SaaSの裏側——どこかでnpmを使っている可能性は高い。 まずは「自社がどのパッケージに依存しているか」を把握する仕組み(SBOM=ソフトウェア部品表)を整えるところから。インシデント時に「どこが汚染されたか即座に追える」状態を作ることが、最大の防御です。
5. まとめ
最後にぎゅっとまとめます。
- 2026年6月、Red Hatのnpmパッケージ32本に自己増殖型ワーム**「Miasma」**が混入。6月5日にはMicrosoftの73リポジトリにも波及した。
- 特徴は①正規の署名付きで配布 ②インストール即実行で認証情報を窃取 ③自己増殖の3点。普通の混入事件より封じ込めが難しい。
- これは初めてではなく、Shai-Hulud(2025年9月)以降のnpmワーム連鎖の最新形。
npm installの仕組み・トークン権限・依存の深さという構造的な病が根にある。 - 開発者の現実的な対策は、
--ignore-scripts・バージョン固定・最小権限トークン・CI/CD点検。完璧より「被害の局所化」を狙う。
わたしの総評を★で。
- ニュースの重要度(開発者向け):★★★★★(CI/CDという信頼の根元が狙われた)
- 一般ユーザーの即時の危険度:★★☆☆☆(直接の被害は限定的。ただし油断は禁物)
- 「もう一度起きる」確率:★★★★★(構造が変わらない限り、名前を変えてまた来る)
怖がらせたいわけではありません。ただ、**「便利なnpm installの一行が、見知らぬコードの実行と同じ」**という事実だけは、頭の片隅に置いてほしい。そのうえで最小権限を徹底すれば、必要以上に怯える必要はありません。
関連記事
- AIコーディングツール時代に急増、npmサプライチェーン攻撃の正体と対策
- Claude Codeの設定ファイルを狙うサプライチェーン攻撃(CVE解説)
- 非エンジニアでも危ない、バイブコーディングのセキュリティリスクと3つの対策
参考にしたソース
- Preinstall to persistence: Inside the Red Hat npm Miasma credential-stealing campaign(Microsoft Security Blog, 2026/6/2) — Miasmaの技術的分析(一次情報)
- Miasma Worm Hits 73 Microsoft GitHub Repositories in Major Supply Chain Attack(The Hacker News) — Microsoftへの波及と被害規模
- Miasma Supply Chain Attack Targeting RedHat npm Packages(Wiz Blog) — 汚染パッケージと拡散の仕組み
- Miasma npm Supply Chain Attack: Self-Spreading Worm via Phantom Gyp(StepSecurity) — binding.gypを使った自己増殖の解説
- Widespread Supply Chain Compromise Impacting npm Ecosystem(CISA, 2025/9) — Shai-Hulud(過去事例)の当局アラート
- “Shai-Hulud” Worm Compromises npm Ecosystem in Supply Chain Attack(Unit 42 / Palo Alto Networks) — npm初の自己増殖ワームの分析
- Shai-Hulud 2.0: Guidance for detecting, investigating, and defending(Microsoft Security Blog, 2025/12) — 変種の検知・防御ガイド
ーー Synth
ヘッダー画像: Photo by Tima Miroshnichenko on Pexels