深いネイビーの背景に生成された抽象的なイラスト:半透明の連結ブロックの連なりが左から右へ伸び、各ブロックには小さく光るシアンの印章が押されている。連なりの中央付近では、1つのブロックが同一のシアンの印章を持つ暗いブロックに置き換えられており、連なりは途切れることなくその先へ続いている。その暗いブロックから細い琥珀色のフィラメントが下方へ枝分かれし、フレーム下端にある小さな暗い端末ペインの列へ向かっている。テキスト、数字、人物、ブランドマーク、組織ロゴは一切表示されていない。OrcaRouterのロゴが右下隅に合成されている。
AI Safety Incidents

ChainDrop: 400以上のnpmパッケージで有効なプロベナンス、そしてnpmインストール不要のClaude Codeフック

著者

Elias Hawthorne

公開日

最新モデル · 20すべてのモデルを見る →
ベンチマーク:Artificial Analysis · 毎日更新
すべての記事に戻る

2026年8月4日攻撃者らは、あるプロジェクトの背後にあるGitHubアカウントを乗っ取ったkeyv——前月に6億回以上ダウンロードされたとElastic Security Labsが述べているキャッシュライブラリ——である。Wiz ResearchとOrca Securityはいずれも、悪意のあるファイルがkeyvのmainブランチへ直接プッシュされ、その後プロジェクト自身のGitHub Actionsワークフローが汚染されたリリースをビルド・公開したと記録している。こうしてそれは正当な来歴情報を携えてnpmに届いた。アテステーション・サプライチェーンツールはこれを使って、パッケージが信頼できるものかどうかを判断する。続いて、研究者がChainDropと呼ぶ自己増殖型ワームは、盗んだnpmトークンを使い、他のメンテナーのパッケージでも同じ手口を繰り返した。Elasticは8月6日までに400を超える固有パッケージを数え、Microsoft Threat Intelligenceは8月4日に同じキャンペーンを説明し、シンガポールのサイバーセキュリティ庁は1,300を超える侵害されたパッケージバージョンと、月間合計20億ダウンロードを数えた。ElasticとMicrosoftはいずれも、リポジトリをClaude CodeまたはVisual Studio Codeで開くと再実行されるフックについて述べている。この記録の情報源リスト全体、深刻度グレード、信頼度評価はAIインシデント・アーカイブに、その周辺で記録された他のnpmおよび開発者ツールのサプライチェーン項目と並んで収められている。

正規のリリースパイプラインはいかにして自らの侵害に署名したか

Wiz Researchは最初の数分間を次のように再構成している:8月4日09:00 UTCに、攻撃者は侵害されたIDを用いてkeyvリポジトリにIDE永続化ペイロードを導入し、その後まもなく、そのペイロードを含むkeyvの新バージョンを公開した。Wizは侵害された当事者をGitHubのメンテナーアカウントと特定し、keyvおよびcacheableエコシステム内の複数のパッケージがその後を追ったと述べている。

Orca Securityの迅速対応レポートは、署名経路についてより具体的だ。報告によると、攻撃者は2つの悪意あるファイル——setup.mjsとMath_Symbol.js——をメインブランチに直接プッシュし、直ちに新しいリリースを作成した。これらのリリースは侵害されたアカウントのGitHub Actionsワークフローを通じてビルドされたため、汚染されたバージョンは有効なプロベナンス署名付きでnpmに公開され、標準的なサプライチェーン整合性チェックを回避した。記録の引用元には含まれていない独立研究チームZscaler ThreatLabzも同じ結論に達し、さらに水準を明示している。悪意あるkeyv 6.0.0は、攻撃者がソースリポジトリを制御していたため、有効なSLSA Build Level 3プロベナンスを備えていた。同日にこのキャンペーンを報じたBleepingComputerは、同じ仕組みを記録している。悪意あるファイルがプロジェクトのメインブランチに直接プッシュされ、新しいリリースが生成され、ビルドが正規のGitHub Actionsワークフローを通じて実行されたため有効なプロベナンスが付与された、というものだ。

Microsoftの分析は、矛盾のように見えて実際には矛盾ではない詳細を加えている。Microsoft Threat Intelligenceは、ワームの拡散段階で、多くの悪性バージョンに対応するソースコードのコミット、プルリクエスト、タグ、正規のリリースが一切ないことが確認された。これは、攻撃者が各公開ソースリポジトリを侵害するのではなく、パッケージの tarball を直接改変して公開したことを示していた。併せて読むと、これらの情報源は1つのキャンペーン内の2つの署名方式を描写している。最初期の keyv リリースは被害者の実際の CI パイプラインを経由し、それを裏付けるアテステーションを備えていたが、ワームの後期リリースは主に盗まれたレジストリトークンで組み立てられ公開されたため、ソースの痕跡が一切残らなかった。Microsoft 自身の観察によれば、tarball 直接方式のパターンは、悪性リリースが対応するソースコミットやプルリクエストを伴わずに通常のパッチバージョンの増分として頻繁に現れた理由を説明している。

Zscaler が率直に述べている、耳の痛い教訓はこうだ。来歴はビルドプロセスを検証するものであって、アカウントの身元や、それを実行する CI システムの完全性を検証するものではない。また同社は、このインシデントを再構成しようとする誰にとっても重要なギャップ、すなわち攻撃者が用いたアカウント乗っ取りの正確な仕組みが、その分析時点では不明であったことも認めている。

npm install で実行されるもの:preinstall、Bun 1.3.13、そして300パターンのコレクター

Elastic Security Labsは、このトリガーを package.json 内の preinstallフックと表現しています。これは、パッケージのインストール完了前に任意のコマンドを実行する正規の npm 機能を悪用するもので、被害者によるさらなる操作は不要です。このフックは setup.mjs を起動し、同ファイルは Bun JavaScript ランタイムがすでに存在するかどうかを確認します。存在しない場合、ドロッパーはマシンのプラットフォームとアーキテクチャを検出し、公式リリースページから Bun v1.3.13 をダウンロードして展開し、それを使ってペイロードを実行した後、痕跡を隠すために一時ディレクトリを削除します。Wiz は、悪意のある呼び出しを行っているユーザーエージェント Bun/1.3.13 を独自に特定しました。このドロッパーはクロスプラットフォームで、Linux、macOS、Windows を標的としています。

ペイロードは高度に難読化されており、そのサイズについては情報源により若干異なります。Elasticは711キロバイト、Orca Securityは728 KBとしています。制御フローの平坦化とBase91文字列エンコード方式を使用しており、Duneをテーマにした文字列—laza、kanly、ghola、mentat、lasgun、sietch、fedaykin、tleilaxu、sandworm、sardaukar、ornithopter、navigator—を含んでいます。Elasticは、これが以前のShai-Huludキャンペーンとの類似点があると指摘しています。

Microsoftの挙動に関する説明には、覚えておく価値のある2つの詳細が追加されている。ペイロードはまず環境を確認し、ロシア語のシステムでは終了し、重複するインスタンスを回避し、開発者ワークステーションではデタッチされたバックグラウンドコピーを起動する。CI内ではアクティブなジョブにアタッチされたままで、ワークフローのシークレット、ランナーの認証情報、OpenID Connectの公開権限に到達できる。

このインシデントが一般的な認証情報の話ではなくAIツールの話になるのは、コレクターの部分です。Elasticによると、コレクターは300を超える固有のパターンを開発者マシン上の認証情報ストア全体でスキャンし、特筆すべき標的はAIツール認証情報(Anthropic、Claude、Codex、Cursor、OpenAI、Gemini)に向けられています。また、AWS、GCP、Azure、Alibaba Cloudの認証情報、GitHubの個人アクセストークン、JWTおよびセッショントークン、HashiCorp Vaultトークン、SSH秘密鍵、Kubernetesサービスアカウントトークン、npmトークンも収集します。Wizは、対象リストが、これを基にした以前のMini Shai-Huludコードと比べてほぼ70%拡大したと報告しています。新たに追加されたものには、Claude、OpenAI、Codex、Cursor、Gemini向けのAIエージェント認証情報ストア、Foundry、Solana、Monero向けの暗号資産キーストア、Jenkinsのmaster.key、Argo CDおよびHarborのシークレット、AlibabaおよびTencentのCLI設定、そして以下も含まれます:/etc/shadow。

Microsoft と Elastic はどちらも、同じデータ流出設計について説明している。結果は JSON としてシリアライズされ、gzip 圧縮され、ランダムに生成された AES-256-GCM 鍵で暗号化され、その鍵は攻撃者の RSA 公開鍵でラップされる。ペイロードはコマンドアンドコントロール(C2)ドメインをハードコードしていない。Elastic によると、実行時に現在のエンドポイントを取得するために 0xE1f2395ee43e45A1556EC6438a88c31B83493103 の Ethereum スマートコントラクトに問い合わせるため、マルウェアに触れることなくインフラをローテーションできる。これが失敗すると、GitHub のコミット履歴で暗号学的に署名されたマーカー — thebeautifulmarchoftime — を探し、埋め込まれた RSA 鍵に対してドメインを検証する。両方とも失敗した場合、被害者自身のアカウントが作成する公開 GitHub リポジトリを通じてデータを流出させる。そのリポジトリは "Shai-Hulud: Here We Go Again" と説明されている。Microsoft は、1 つのフォールバック経路では盗まれた GitHub トークンを暗号化せずに二重 Base64 でエンコードすると指摘している。

伝播はトークンの品質によって条件付けられる。Elastic によると、このワームは、資格情報の一括調査で、npm トークンが見つかった場合にのみ起動する:パッケージへの書き込み権限および二要素認証なしで公開できる能力を備えたもの。その後、書き込み可能な各パッケージの最新 tarball をダウンロードし、自身を注入し、パッチバージョンを上げて再公開する。BleepingComputer はさらに、すべてのトークンは盗まれる前にレジストリの whoami エンドポイントに対してリアルタイムで検証されると付け加えている。このルーチンこそが、1つの侵害された ID を数百件のリリースに変えた原因であり、悪意のあるバージョンが通常のパッチバージョンアップのように見える理由でもある。

An HTML card titled 'The first four hours, 4 August 2026', subtitled 'What the sources put where in the infection order, and the three counts the campaign is quoted with'. A four-step numbered column headed 'Infection order' reads: 1, 09:00 UTC: files pushed to main — attacker adds IDE persistence payloads to the keyv repository, then publishes a new keyv version, per Wiz Research; 2, the victim's CI builds the payload — keyv 6.0.0 reaches npm through the compromised account's own GitHub Actions workflow carrying valid provenance and a SLSA Build Level 3 attestation, per Orca Security and Zscaler ThreatLabz; 3, the worm republishes with stolen tokens — stolen npm tokens with write access and 2FA bypass bump patch versions, at peak roughly one infected package per second, per Elastic Security Labs and Zscaler ThreatLabz; 4, IDE hooks travel with the repos — a stolen GitHub App token commits .claude/settings.json and .vscode/tasks.json to up to 50 branches per accessible repository, per Elastic Security Labs. A right-hand panel headed 'Three counts, three units' shows: 400+, unique npm packages compromised by 6 August, per Elastic and Microsoft Threat Intelligence; 868, worm-reached packages across 1,381 versions, per Aikido via BleepingComputer and Orca Security; 1,300+, package versions with 2 billion monthly downloads, per CSA Singapore advisory AD-2026-009, 6 August. A footer reads: each figure is a snapshot taken while the campaign was still running; none of the cited sources claims a final total.

npm install不要の感染経路

このキャンペーンを以前のnpmワームと分ける発見は、インストールが唯一の侵入経路ではなくなったことです。Elasticは、AIコーディングツールのユーザーを対象とした2つの追加の実行経路について説明しています。あるSessionStartフックは.claude/settings.jsonに記述され、node .claude/setup.mjsを新しいClaudeセッションの開始時に実行します。VS Codeの場合、あるfolderOpenタスクは.vscode/tasks.jsonに記述され、node .vscode/setup.mjsを、感染したリポジトリを開いたときに実行します。Microsoftの分析では、同じ4つのアーティファクト — .claude/settings.json、.claude/setup.mjs、.vscode/tasks.json、.vscode/setup.mjs — を挙げ、それらを、元のnpmインストールが完了した後にペイロードを再起動できる二次感染経路として説明しています。

これを劇的に広げる条件は、盗まれた認証情報の中にあります。それらの中にGitHub App tokenがある場合、Elasticによると、ワームは悪意のあるフックをアクセス可能なリポジトリごとに最大50個のブランチにコミットし、それぞれに .claude/settings.json と .vscode/tasks.json を注入します。Elasticの結論は、そうしたブランチの1つをクローンして開いた開発者が、プロジェクトを開くだけで感染し得るというものです。パッケージのインストールはなく、したがってインストールスクリプトによる防御も、その経路には一切存在しません。

Zscalerの評価では、永続化フックはパッケージ削除後も存続し、VS CodeまたはClaude Codeでプロジェクトを開くだけで再実行されます。これにより、--ignore-scripts多くのチームが以前のnpmワーム後に採用した緩和策を回避します。その推奨事項は直接次の通りです。IDEおよびAIエージェントの設定ファイル(.claude/、.cursor/、.vscode/、.gemini/)を実行可能コードとして扱い、ソースと同じ厳格さでレビューする。

攻撃のリポジトリ側の部分にはフィンガープリントがあります。Elasticは、ワームが生成したコミットは作者名claudeとコミットメッセージchore: update configによって識別できると報告しており、Wizも同じメッセージ文字列を記録しています。Elasticはさらに、そのコミットメッセージには盗まれたGitHubトークンとともに威嚇用の文字列—IfYouBlockThisAPIKeyItWillCrashTheLiveProductionServersOfAllThirdPartyClients—も含まれていたと付け加えており、これを開発者にトークンを取り消させないよう脅す試みと解釈しています。Wizは同じ文字列を初期コミットに記録しており、IDEフックを導入するコミットではより短いメッセージに切り替えられています。

A generated abstract illustration on a deep navy field: a tall repository-shaped block stands at centre, its face divided into thin horizontal branch lines. A narrow beam of pale light from an editor-shaped pane at upper left falls across the block, and where the beam touches one branch line, a small bright hook symbol appears and a thin amber thread runs down into a dark pool at the base. The other branch lines remain untouched and faintly lit. No text, numbers, people, brand marks or organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.

カウントは一致しませんが、それは矛盾ではありません

影響範囲について公表されている数値はすべて異なる単位に基づいており、それらの単位は相互に置き換え可能ではない。Elastic Security Labsは8月6日付の記述で、400を超える固有のnpmパッケージが侵害されたと集計した。Microsoft Threat Intelligenceは複数の無関係なパブリッシャーにまたがる400を超えるパッケージについて述べた。BleepingComputerが引用したAikidoは、1,381バージョンにまたがる少なくとも868パッケージとしていた。Orca Securityは、月間6億1,900万回を超えるダウンロードを持つ直接汚染された10個のkeyvおよびcacheableパッケージを報告し、次にワームが到達した868の追加パッケージと1,381バージョンを挙げ、月間20億回を超えるインストールに及んだとしている。シンガポールのCSA勧告AD-2026-009(8月6日付)は、1,300を超える侵害されたパッケージバージョンを記録しており、それらは合計で月間20億回のダウンロードに相当する。

これらは3つの異なる分母 — パッケージ、パッケージバージョン、月間ダウンロード量 — であり、まだ進行中だったキャンペーンの3つの異なる時点で取得されたものです。Zscalerの速度に関する説明は、なぜそれらが食い違うのかを明らかにしています。同社の説明によると、ワームは4時間足らずで400以上のパッケージに自己伝播し、ピーク時には約1秒に1つの感染パッケージを公開した。後から得られたカウントを、以前のカウントの訂正と見なすのは誤りです。それぞれはスナップショットであり、引用されたどの情報源も最終的な合計を主張していません。

Elasticがライブラリ単位で示す暴露規模の数値は、最もよく引用され、最も曖昧さが少ない。同社は前月、keyvだけで6億回超のダウンロード数を報告しており、flat-cacheが約5億8,000万回、cacheable-requestが1億3,700万回超、cacheableが3,000万回超、cache-managerが1,600万回超となっている。CSAのアドバイザリには、侵害された具体的なバージョンが列挙されており、その中にはkeyv 6.0.0、flat-cache 6.1.24、file-entry-cache 11.1.6、cacheable-request 13.0.20、cacheable 2.5.1、cache-manager 7.2.10、@cacheable/utils 2.5.1、ecto 5.0.1が含まれる。

失効の罠

影響を受けるバージョンをインストールした対応者は、最初の問題に続いて2つ目の問題に直面する。Elasticは、条件付きのGitHubフォールバック経路において、ペイロードが認証情報へのアクセスを維持するトークン監視コンポーネントをインストールしようとし、次のものを含むと報告している:監視対象のトークンが失効した場合の破壊的ハンドラ。Zscalerはこの仕組みを運用面で詳細に説明し、これをトークン失効トラップと名付けている。ワームは、盗んだトークンを使って60秒ごとにGitHub APIをポーリングするバックグラウンドプロセスをインストールし、トークンが4xxエラーを返した場合——被害者がトークンを失効させたことを意味する——には、二次的な破壊的ペイロードが発火する。これは亜種に応じて、リモートコード実行やユーザーのホームディレクトリの削除を含み得る。

Wizは、デッドマンズスイッチがコマンドアンドコントロールサーバーからの応答に基づいて選択的に有効化されると付け加えている。運用者は、どのコマンドを有効化するか、およびスイッチが失効を監視すべきトークンを指定する値を返すことができる。Wizはまた、モニターがユーザーエンドポイントからの有効な応答を探すため、そこに有効な任意のトークン種別がトリガーとして機能し得るとも注記している。

実務上の帰結は、BleepingComputerと、それが引用するAikidoのガイダンスによって記録されている。影響を受けるバージョンをインストールした開発者ワークステーションまたはCI/CDランナーは、侵害されたものとして扱うべきである(たとえその後パッケージが削除されたとしても)。これは、第2段階の実行によってトークンが露出し、ビルドの完全性が損なわれた可能性があるためである。Microsoftのガイダンスもビルド側から同じ結論に達しており、ライフサイクルスクリプトを有効にして影響を受けるパッケージをインストールした組織は、そのワークステーションまたはビルドランナーを侵害されている可能性があるものとして扱い、影響を受けるシステムと下流の成果物を信頼できるソースから再ビルドすべきだと警告している。

An HTML card titled 'Established, assessed, and not shown', subtitled 'The same five analyses, sorted by how strongly each claim is supported — not by how confidently it is written'. Three columns. ESTABLISHED lists: the keyv maintainer's GitHub account was compromised, files were pushed to main and a release was published on 4 August 2026; at least keyv 6.0.0 shipped through the victim's own CI with valid provenance and SLSA Build Level 3; a preinstall hook ran setup.mjs, which downloaded Bun v1.3.13 to execute an obfuscated payload; the collector scanned 300+ credential patterns including Anthropic, Claude, Codex, Cursor, OpenAI and Gemini; hooks in .claude/settings.json and .vscode/tasks.json run on session start and folder open; a GitHub App token extended the hooks to up to 50 branches per accessible repository; more than 400 unique packages were compromised within days; CSA Singapore published advisory AD-2026-009 on 6 August 2026. ASSESSED lists: attribution to the Mini Shai-Hulud family and a TeamPCP lineage; that the account takeover was the initial access route; that provenance must not be read as proof of safety, since it validates the pipeline and not the account; that IDE configuration files should be treated as executable code. NOT SHOWN lists: how the maintainer account was taken over, reported as unknown by Zscaler; any single final total, since the counts use packages, versions and downloads interchangeably; any confirmed reuse of a stolen AI-tooling credential against a provider account; who the operator is beyond vendor attribution; any remediation outcome, account recovery or enforcement action. A footer cites Elastic Security Labs, Microsoft Threat Intelligence, Wiz Research, Orca Security and CSA Singapore AD-2026-009.

確立されていること、評価されていること、そして誰も示していないこと

主要記録と5件の独立した分析はメカニクスについて一致しており、メカニクスに関する主張はこのファイルの中で最も強い部分です。

• keyv のメンテナーの GitHub アカウントが侵害され、2026年8月4日、リリースが公開される前に悪意のあるファイルが main に直接プッシュされた — Wiz、Orca Security、BleepingComputer、CSA Singapore が一貫して報じている。

• 少なくとも{{1}}keyv 6.0.0は、被害者自身のCIパイプラインを通じて有効なプロベナンスを伴ってnpmに到達し、ZscalerはSLSA Build Level 3のアテステーションを明示している{{/1}}。これがこのインシデントを注目に値するものにする主張であり、互いの作業を共著していない3つの組織によって裏付けられている。

• preinstallフックがsetup.mjsを実行し、これがBun v1.3.13をダウンロードして、難読化されたペイロードを実行しました。そのペイロードは300を超える認証情報パターンをスキャンし、AIコーディングツールの認証情報も含まれていました。ElasticとWizは、ランタイムのバージョンとAIを標的とした認証情報リストの両方について一致しています。

• {{1}}.claude/settings.json{{/1}}と{{2}}.vscode/tasks.json{{/2}}に書き込まれたフックはセッション開始時とフォルダを開いたときに実行され、さらにGitHub Appトークンによって、アクセス可能なリポジトリごとに最大{{3}}50{{/3}}ブランチまで拡張された — これがElasticの発見であり、リポジトリを開くだけで開発者が感染し得るという同社の主張の根拠となっている。

• 400を超える固有のパッケージが数日以内に侵害され、国家規制機関であるCSA Singaporeは2026年8月6日に、影響を受けるバージョンとインジケーターを列挙したアドバイザリAD-2026-009を公開しました。

情報源が事実ではなく評価として扱っている内容には、その旨を明示するべきです。Wizは、そのペイロードを「Mini」Shai-Huludマルウェアファミリーの派生形であり、TeamPCPが公開した公開リポジトリShai-Hulud-Open-Sourceを基に構築されているが、いくつかの重要な変更が加えられていると説明しています。Orca Securityはこの攻撃をTeamPCPに帰属させています。ZscalerはChainDropをTeamPCPに結び付け、2025年9月から続く系譜に位置付けています。これはベンダー間の帰属に関するコンセンサスであり、引用された一次資料が特定の個人やグループについて証明している事柄ではありません。

引用されたどの情報源も立証しておらず、本稿でも補足していない3つの点。第一に、どのようにメンテナーアカウントが乗っ取られたのか:Zscalerは、分析時点で正確な手口は不明であったと明言している。第二に、単一の最終的な合計値:400、868、1,300という数字は、それぞれ異なる時点でパッケージ、パッケージとバージョン、バージョンを数えたものであり、このキャンペーンが終結したと主張する情報源はない。第三に、そして本記録におけるAI固有の主張にとって最も重要な点として、盗まれたAnthropic、Codex、Cursor、Gemini、OpenAIの認証情報がプロバイダーのアカウントに対してリプレイされたことが確認された事例を報じる引用情報源はない。文書化されているのは意図と能力——明示的なターゲットリストと、そこへ到達するために作られたコレクター——であり、AIプロバイダーのシステムに対する下流の侵害が実証されたわけではない。

何が変わったのか — そして対応者が何をすべきか

記録の中で最も具体的な解決策はプラットフォームの変更です。Elasticはアップグレードを推奨しており、対象はnpm 12以降で、デフォルトでpreinstallフックをブロックします。Microsoftのガイダンスは独立してnpm CLI v12とmin-release-age機能を推奨しており、これは新しいバージョンを十分長く保留して、ビルドに届く前にコミュニティが侵害を捕捉できるようにします。

さらに、各情報源が公開している対応手順は大きく重複している。

• Elastic: 影響を受けるマシン上のセッショントークンを含むすべての GitHub トークンを取り消す;npm トークンを取り消して再生成する(特に書き込み権限と二要素認証バイパスを持つ自動化トークン);メッセージが chore: update config from claude@users.noreply.github.com である不正なコミットをリポジトリで検索する;クラウド、Kubernetes、Vault、AI ツール、CI/CD のシークレットをローテーションする;npm アカウントで二要素認証を有効にする。

• Microsoft: 影響を受けるエンドポイントおよびビルドホスト上の npm キャッシュと yarn キャッシュをパージし、既知の正常なバージョンに固定し、侵害されたバージョン(推移的参照を含む)についてロックファイルと成果物をレビューし、共有ベースイメージとゴールデンビルドランナーを再構築し、トークンスコープ、ワークフロー承認、リリースの来歴をレビューすること。本インシデントは OIDC 公開を介した CI/CD パイプラインの悪用と一致するため。

• CSA Singapore:影響を受けるバージョンを開発、ビルド、CI/CD環境から削除し、影響を受けるシステムを侵害済みとして扱って再構築し、認証情報をローテーションし、クラウドおよびソースコード環境での不正アクセスを確認し、公開された指標を監視し、許可リスト登録、完全性検証、来歴管理の制御を強化する。

• Zscaler:.claude/、.cursor/、.vscode/、.gemini/ を実行可能コードとして扱い、SLSAやSigstoreの来歴を安全性の証明として扱うのをやめる — 代わりに、時間外の公開、大量のバージョン公開、初回公開者といった公開行動に対する異常検知と組み合わせる。

この記録には是正結果が含まれていない。悪意のあるバージョンが完全に削除されたこと、アカウントの復旧、逮捕、または規制執行措置を報告する引用元はない。CSAの勧告は防御側への通知であり、当事者に対する認定ではない。

このインシデントが変えるのは、ある分類のあり方だ。開発者ツールの設定ファイルは実行経路であり、エディタがフォルダを開くことは実行イベントである。そしてプロベナンス・アテステーション(来歴証明)とは、どのパイプラインがそのパッケージを生成したかについての表明であって、そのパイプラインの実行時に誰が鍵を保持していたかについての表明ではない——そしてまさにその隙間こそが、最初の keyv リリースがすり抜けてしまった穴なのだ。