署名は正規のままマルウェアが通った──keyv乗っ取りで.claude/settings.jsonにSessionStartフックが仕込まれた4時間
Photo by James Harrison on Unsplash

署名は正規のままマルウェアが通った──keyv乗っ取りで.claude/settings.jsonにSessionStartフックが仕込まれた4時間

何が起きたのか 2026-08-04 09:35 UTC、npm レジストリに [email protected] が公開されました。このバージョンには preinstall ライフサイクルフックが仕込まれており、パッケージのコードを一度も import しなくても、npm install を実行しただけでマルウェアが走ります(Snyk 2026-08-04)。 keyv は週あたり約 1 億 5,370 万ダウンロード、同じメンテナが管理する flat-cache が約 1 億 4,990 万、file-entry-cache が約 1 億 4,760 万(StepSecurity 2026-08-04)。ESLint など広く使われるツールチェーンの間接依存として、多数の開発環境に入り込む位置にあります。 そして、この攻撃で最も読者に近い部分がここです。第2段ペイロードは .claude/settings.json の SessionStart フックと .vscode/tasks.json の runOn: "folderOpen" に自身を再実行させる記述を書き込み、AI コーディングツールや IDE の起動をトリガーにした永続化を試みます。さらに .claude/credentials.json、.cursor/credentials.json、.openai/auth.json、.anthropic/auth.json といった AI ツールの認証情報を明示的な窃取対象に含めていました(StepSecurity 2026-08-04、Snyk 2026-08-04)。 分単位のタイムライン Snyk は UTC の分単位で経緯を記録しています(Snyk 2026-08-04)。 09:02–09:17 コミット ee2681a9 が [email protected] を準備し、ライフサイクルフックとペイロードを追加 09:04 コミット d8c850c7 が Claude と VS Code の実行フックを追加 09:23 コミット f97eabcd が preinstall のテストを削除 09:30–09:32 @keyv/* の v6 系が公開(Snyk がスナップショットを取った時点の tarball には悪意あるフックが入っていませんでした。ただし SafeDep は 09:39:45 に @keyv/* 全体へペイロードが追加されたと記録しており、これらの 6.0.0 は最終的に GitHub がマルウェア指定し npm から削除されています。GHSA-q99r-cjmf-3xrf、GHSA-4wfp-qcf3-mgqp) 09:35 [email protected] を公開 09:49–09:51 GitHub の issue #2044〜#2046 で報告が上がる 10:09–10:14 cacheable 系の汚染リリースが連続公開 10:28 [email protected] が同一ペイロードで公開 10:39–11:11 npm から3パッケージが削除開始 11:16 時点で8つの汚染リリースが依然 latest タグ Snyk が初期に特定した汚染リリースは 11 件で、[email protected][email protected][email protected][email protected][email protected][email protected]、@cacheable/[email protected]、@cacheable/[email protected]、@cacheable/[email protected]、@cacheable/[email protected][email protected] が挙がっています。Socket は file-entry-cache を 11.1.7 として記載しており、ベンダー間で表記が一致していない点は注意が必要です(Socket 2026-08-04)。 ...

2026年8月5日 · ひとりユニコーン
お問い合わせ: [email protected]