# Dependabotのバンプがワームを公開。22パッケージ。

Published: 2026-09-17

ボットがプルリクエストを開き、人間が24分後にマージする。その95分後、ワームはCIで見つけたトークンを使って、彼の名前で、彼の22のnpmパッケージの悪意のあるバージョンを110個公開した。

Canonical: https://thedailydiff.dev/ja/video/2026-09-17-dependabot-tanstack/

## この動画の要点

- ボット、人間、ワーム
- どのように起こったか、なぜnpmが許可したか、誰が非難されるべきか
- タイムライン：汚染されたキャッシュ
- 21:48 — Dependabotのバンプ
- なぜそれが機能するのか

## チャプター

- 0:00 ボット、人間、ワーム
- 0:20 どのように起こったか、なぜnpmが許可したか、誰が非難されるべきか
- 0:30 タイムライン：汚染されたキャッシュ
- 1:15 21:48 — Dependabotのバンプ
- 1:50 なぜそれが機能するのか
- 2:20 git blame
- 2:45 影響範囲
- 3:00 評決

## 翻訳されたトランスクリプト

オリジナルの英語ナレーションから翻訳されています。利用可能なオーディオとキャプションはYouTubeによって管理されています。

### ボット、人間、ワーム

0:00 ボットがプルリクエストを開き、人間が24分後にそれをマージする。 95分後、ワームが公開したのは 彼のパッケージの110バージョン。 彼として。 TanStackの事後検証には上流のタイムスタンプがあり、下流のメンテナーの 残りはHacker Newsが1100ポイントと「Mini Shai-Hulud」という名前を与えている。どのようにして起こったのか、なぜnpmがそれを許可したのか、誰が責任を負うべきか。 Mini Shai-Hulud。どのようにして起こったのか、なぜnpmがそれを許可したのか、誰が責任を負うべきか。

### どのように起こったか、なぜnpmが許可したか、誰が非難されるべきか

0:21 これはThe Daily Diff、事後検証です。 5月11日、朝。 名前を変更したフォークがTanStack Routerに対してプルリクエストを開く。 それは1時間以内に閉じられるが、ベンチマークワークフローは既にそのコードを実行し、

### タイムライン：汚染されたキャッシュ

0:33 リリースワークフローが使用するキーの下に汚染されたキャッシュを保存していた。 19時20分。正当なマージがリリースを実行する。 キャッシュが戻り、バイナリがランナーのメモリを読み込み、 公開トークンを抜き取り、有効な証明書付きで42パッケージに84バージョンをSHIP ITする。 パッケージ、有効なプロベナンスと共に。 テストは失敗する。それでも公開される。 19時46分、StepSecurityの研究者が問題を報告。UTC午前9時までに すべてが非推奨となり、アドバイザリが公開される。

0:55 非推奨は消えたわけではない：npmは依存関係のあるものを非公開にすることを拒否する、 そのため、何時間もインストール可能な状態が続く。 21時48分。9つ星の航空データプロジェクトで、 Dependabotはルーチンのプルリクエストを開く：dev-dependenciesグループをバンプ、 13件の更新。そのうち2件は汚染されたTanStackバージョンだ。 22時12分：マージ。公開ワークフローはスコープ内のトークンでnpm C-Iを実行する。

### 21:48 — Dependabotのバンプ

1:15 prepareスクリプトがそれを読み取り、22時17分にワームが彼として公開する。 トークンが届くすべてのパッケージの5バージョン、 古いサイドプロジェクトさえも：すべてに使える古典的なトークンが1つ。 95分で110バージョン。 彼は深夜過ぎにメールで知る。 なぜそれが機能するのか。 1：npm installはデフォルトで他人のライフサイクルスクリプトを実行する、 そしてgit依存関係のprepareスクリプトも含まれる。

1:39 2：ワームが望むのは一つ：二要素認証なしで公開できるトークン。 次に、そのメンテナーが他に何を所有しているかをレジストリに尋ね、 それらすべてを自分自身を内包させて再公開する。 3：チェーンに人がいない。

### なぜそれが機能するのか

1:51 ボットが提案し、パイプラインがインストールし、ワームがその恩恵を返す：その デッドドロップブランチはdependabotスラッシュgithub-actionsスラッシュfremenと名付けられている。 git blame。npmのインストールモデル、55パーセント：インストール時にスクリプトが実行され、 非推奨のままインストール可能で、二要素認証をバイパスするトークンが存在する。 TanStackのCI、25パーセント：監査されていないプルリクエストターゲットワークフローが キャッシュへの書き込みアクセス権を持つフォークコードを実行している。 バンプの習慣、15パーセント：24分で13の更新がマージされ、 部屋にトークンがある。

2:17 Dependabot、5パーセント：ワームがその制服を着るほど信頼されている。

### git blame

2:20 影響範囲：42のTanStackパッケージ。 下流22件、9つ星のプロジェクトから。 ワームがMistralに到達すると、エコシステム全体で160件を超える。 すべてのアップストリームバージョンは有効な署名を運んでいた：公式パイプラインによってビルドされたもの。 真実。評決、事後検証：SHIP IT。 両方のメンテナーは1日以内にタイムスタンプ付きの事後検証を投稿する。3日以内に、 下流のパイプラインはignore-scriptsでインストールし、 ビルドと公開を分離し、長期生存トークンを削除する。

### 影響範囲

2:47 npmのデフォルトは変わっていない。 月曜日：インストール時にignore-scripts、そしてそれを実行するジョブから公開トークンを外す。まだ話すことを許されていないインシデントがあれば、 話すことを許されていないインシデントをコメントまたはthedailydiff.devまで送ってください。 コメントまたはthedailydiff.devまで送ってください。 本日のdiffは以上です。

### 評決

3:00 AxrisiのNikoです。 責任を持ってマージしてください。

## 情報源

- [TanStack postmortem (Tanner Linsley, May 11, refined May 15)](https://tanstack.com/blog/npm-supply-chain-compromise-postmortem) — tanstack.com
- [TanStack "Hardening TanStack After the npm Compromise" (May 12)](https://tanstack.com/blog/incident-followup) — tanstack.com
- [TanStack/router#7383 — the StepSecurity detection issue](https://github.com/TanStack/router/issues/7383) — github.com
- [Downstream incident post, @squawk/\* (May 12)](https://github.com/neilcochran/squawk/discussions/251) — github.com
- [Downstream hardening post (May 14)](https://github.com/neilcochran/squawk/discussions/264) — github.com
- [The Dependabot PR #246 (opened 21:48 UTC, merged 22:12)](https://github.com/neilcochran/squawk/pull/246) — github.com
- [@tan\_stack advisory post, 21:19 UTC](https://x.com/tan_stack/status/2053948103766716630) — x.com
- [StepSecurity — worm internals, bypass\_2fa search, Dependabot-style branch names](https://www.stepsecurity.io/blog/mini-shai-hulud-is-back-a-self-spreading-supply-chain-attack-hits-the-npm-ecosystem) — www.stepsecurity.io
- [Socket](https://socket.dev/blog/tanstack-npm-packages-compromised-mini-shai-hulud-supply-chain-attack) — socket.dev
- [Aikido — "over 160 packages, including Mistral"](https://www.aikido.dev/blog/mini-shai-hulud-is-back-tanstack-compromised) — www.aikido.dev
- [Hacker News (1,097 points)](https://news.ycombinator.com/item?id=48100706) — news.ycombinator.com
