2026年9月17日、企業向けAIエージェント保護を掲げる Air の研究チームは、主要AIコーディングエージェントに影響するゼロクリックRCE手法 Plugin4Shell を公開しました(Air 公式The Register)。狙いはモデル本体ではなく、プラグイン/スキルを配るマーケットプレイスと、エージェント側のSHAピン留め実装です。

「レビュー済みコミットに固定したから安全」という前提が、チェックアウト後の検証不足で崩れる、という話です。

何が壊れていたか

マーケットプレイスは、可変なタグやブランチではなく、不変のコミットハッシュにピン留めすることで、後からの差し替え(ラグプル)を防ぐ設計を取ります。Plugin4Shellは、エージェントが「ピン留めされたコミットをチェックアウトする」一方で、実際に作業ツリーがそのコミットに着地したかを検証しない点を突きます。

Air の説明では、典型的な流れは次のとおりです。

  1. 攻撃者がまず無害なプラグインを出し、レビューとピン留めを通す
  2. 利用が進み、マーケットプレイスが別の(まだ無害な)コミットへピンを更新する
  3. 攻撃者がリポジトリを支配下に置き、ピン留めSHAと同名のブランチなどを使って、チェックアウト先を悪意ある内容へすり替える
  4. エージェントのプラグイン自動更新が走り、ユーザー操作なしで悪意ある版に置き換わる

Git は「40桁の十六進と同じ名前の ref」があると、オブジェクトIDより ref を優先する、といった挙動が悪用の土台になります(ホストによっては40桁ブランチ名を拒否する、という緩和もあります)。Gemini CLI 側は別経路(FETCH_HEAD まわり)でも同種のずれが起き得る、と報告されています。

Air が示す修正の要点は単純で、チェックアウト後に HEAD の実コミットがピン留めSHAと一致することを検証し、一致しなければ中止する、というものです。検証はマーケットプレイス側だけでは完結せず、エージェント側の修正が必要、というのが繰り返し強調されている点です。

影響製品とパッチ状況(報告時点)

Air の開示・検証まとめ(公開時点)は次のとおりです。

製品状況
Anthropic Claude Code2.1.179 で修正
OpenAI Codex0.146.0 で修正
Microsoft / GitHub Copilot開示済みだが、報告時点でパッチ未提供(ユーザー側に完全な緩和が無い、との説明)
Google Gemini CLI非推奨化のためパッチなし。Google は Antigravity への移行を推奨

GitHub 側は「SHAに似せたブランチ/タグ名を作れない」緩和により自社ホスト上では悪用されない、とのコメントが報道されています。Air は、マーケットプレイスが Bitbucket など他ホストでも動ける構成では足りない、と反論しています。

開示は2026年6月。発見は5月、各社への報告後、Anthropic・OpenAI は修正、Google は8月にパッチなし方針を確認、というタイムラインです。

なぜ「王国の鍵」と言われるか

コーディングエージェントは、開発者本人と同じく、リポジトリ・クラウド資格情報・社内API・本番周辺に手が届くことが多いです。プラグインは、その権限をほぼそのまま継承します。悪意あるプラグインに一度乗れば、追加の権限昇格なしにホスト上のコード実行へつながる、というのが影響の読みです。

Air は先行研究として、悪意あるスキルの拡散や、メンテナ乗っ取り(SkillJacking / RepoJacking)も示してきました。Plugin4Shellは、その「乗っ取ったあと、ピン留めで封じる」最後の壁が抜けた、という第三幕、という位置づけです。

いまできること

完璧な理論より、運用の優先度です。

  • Claude Code / Codex は、上記バージョン以上へ更新する
  • プラグイン自動更新を無制限にしない(特に未修正エージェント)
  • コミュニティマーケットプレイス依存を見直し、社内レビュー済み配布へ寄せる
  • Gemini CLI 利用者は、ベンダー推奨どおり移行先の確認
  • 「ピン留めしたから終わり」ではなく、エージェント側の検証実装の有無を確認する

モデルのプロンプト注入ばかりが話題になりがちですが、今回は配布レイヤの古典的サプライチェーンです。エージェントを「便利な拡張付きシェル」として扱うなら、拡張の供給源と検証は、パッケージマネージャと同じ厳しさが要ります。

一次情報・関連