Plugin4Shell:4大AIコーディングエージェントのSHAピンを破るゼロクリックRCE
- Claude Code・GitHub Copilot・Codex・Gemini CLIを業務で使っているエンジニア
- AIコーディングエージェントのセキュリティリスクを把握したいDevSecOps担当者
- プラグイン管理・サプライチェーンセキュリティに関心がある開発チームリーダー
「レビューしてピン留めしたはずのプラグインが、実は違うコードを実行していた」
Hacker Newsのスレッドに流れてきたこの一文で、多くのエンジニアが手を止めた。2026年9月17日、セキュリティ企業AIR Securityが「Plugin4Shell」を公開した。Claude Code・OpenAI Codex・GitHub Copilot・Google Gemini CLIという4大AIコーディングエージェントに共通する、ゼロクリックのRCE(リモートコード実行)脆弱性だ。
名前は意図的だ。2021年にJavaエコシステムを震撼させたLog4Shellと同じ命名パターンを持つ。「広く使われているコンポーネントの信頼の連鎖が、根底から壊れていた」という構造的問題を示すためだ。
AIR SecurityのOr Nevo研究員はThe Registerに対し、こう述べた。「攻撃面は静かに広がってきた。エージェントは非常に強力になった。検証の仕組みがそれに追いついていない」(2026年9月17日)
AIR Securityの開示文には、この欠陥の本質が一文で要約されている。「エージェントはマーケットプレイスがピン留めした正確なコミットをチェックアウトするが、実際にそこに到達したかは一切確認しない。プラグインのリポジトリを制御できる攻撃者は、チェックアウトが悪意あるコードに解決されるよう誘導できる。ピンは依然として有効に見えたまま、結果はゼロクリックのRCEだ」
SHAピンニングが機能しなかった理由
AIコーディングエージェントのプラグインには「SHAピンニング」という安全機構がある。マーケットプレイスでレビューされたプラグインの特定コミット(40文字の16進数ハッシュ)を記録し、インストール時に「このコミットのコードだけを信頼する」仕組みだ。
問題はその確認方法にあった。エージェントたちは概ね次のような処理を行っていた。
git checkout a3f2c9d1e8b4f7a0c5e2d9b6f1a8c3e7d4b9f2a1
そして「checkoutに使った名前がSHAと一致するか」だけを検証して終了した。実際にチェックアウトされたコードが期待したコミットと同じかどうかは確認していなかった。
攻撃者の手順はシンプルだ。正規のプラグインをマーケットプレイスに登録し、レビューを通過させてSHAをピン留めされる。その後、ピン留めされたSHAハッシュと全く同じ名前のブランチ(例: a3f2c9d1e8b4f7a0c5e2d9b6f1a8c3e7d4b9f2a1)をリポジトリに作成して悪意あるコードを置く。Gitは参照名(ブランチ名)をコミットオブジェクトより優先して解決するため、エージェントが「期待通りのSHA」でcheckoutしたつもりでも、実際には攻撃者のブランチが展開される。
Gitは “refname is ambiguous” という警告を出す。しかしエージェントはこの警告を表示せず、名前の一致だけを確認して「成功」と判断した。
AIR Securityの研究者たちが強調したのは、4社が同じ欠陥を独立して作り込んだという事実だ。コードは共有されていない。共有されたのは「SHAを名前として指定することと、SHAの内容を検証することは同じだ」という誤った前提だった。
修正は一行で済む。checkoutの後に git rev-parse HEAD で実際のコミットハッシュを取得し、ピン留めしたSHAと照合するだけだ。Anthropic(Claude Code)とOpenAI(Codex)は開示前に修正を完了させた。MicrosoftとGoogleは対応が異なった。
4製品の対応状況
AIRは2026年5月に脆弱性を発見し、6月に4社へ非公開で開示した。3ヶ月の協調開示期間を経て、9月17日に公表した。
| エージェント | ベンダー | 修正バージョン | 対応状況 |
|---|---|---|---|
| Claude Code | Anthropic | 2.1.179 | 開示前に修正済み |
| Codex | OpenAI | 0.146.0 | 開示前に修正済み(リリースノート:「Verify Git plugin SHA checkouts」) |
| GitHub Copilot CLI | Microsoft | なし | 開示日時点で未修正、パッチ未定 |
| Gemini CLI | なし | 修正せず廃止。後継「Antigravity」へ移行を案内 |
Microsoftへの批判は大きい。同社はCopilotをFortune 500企業の約90%に展開しており(Microsoft社発表、AIR Security報告より)、6月の非公開開示から3ヶ月以上経過しても修正を出していない。CVEの割り当ても確認されていない。
Googleの対応は異なる種類の問題を示す。パッチではなく製品廃止という選択は、AIツールの寿命の短さと、セキュリティ上の問題が発生したときに「直す」ではなく「捨てる」という判断がとられる可能性を示している。Gemini CLIユーザーは事実上、パッチが永遠に来ないツールを使い続けるか、乗り換えるかの二択に追い込まれた。
攻撃者が手に入れるもの
プラグインはエージェントを実行している開発者と同じ権限で動作する。つまり成功した攻撃者は以下にアクセスできる。
- SSHキー(
~/.ssh/以下の秘密鍵を含む) - AWSその他クラウドプロバイダーのクレデンシャル(環境変数、
~/.aws/credentials) - ローカルのソースコード全体(読み取り・書き込みの双方)
- 全環境変数(APIキー、シークレット、トークン類)
- 開発者マシンからアクセス可能な社内リポジトリ
- 本番環境(VPNや踏み台サーバー経由でアクセス可能な場合)
AIコーディングエージェントは性質上、幅広いファイルシステムアクセスとクレデンシャルアクセスを持って設計されている。その権限の広さが、この脆弱性の爆発半径を大きくしている。
The Registerは「コーディングアシスタントは侵害する価値が特に高いツールだ。開発者のマシン上で動き、ソースコード・クレデンシャル・コマンド実行能力にアクセスできる」と指摘した。(出典:The Register、2026年9月17日)
AIRのOr Nevo研究員は公開時に「パッチがなく期限もない脆弱性に、Copilotを使用している組織すべてがさらされている。GitHubの数字によれば、それはFortune 500の約90%だ」と述べた。(出典:Help Net Security、2026年9月18日)
ただしAIRは9月17日時点で「野外での悪用の証拠はない」と明記している。被害報告も出ていない。しかしGitHub Copilotが未修正のまま企業の90%に展開されている現状は、潜在的な攻撃面として残り続ける。
日本のエンジニアが今すぐ確認すること
Claude Codeを使っている場合:
claude --version
2.1.179以降であれば修正済みだ。古い場合は更新する。
npm update -g @anthropic-ai/claude-code
OpenAI Codexを使っている場合:
バージョン0.146.0以降を確認する。リリースノートに「Verify Git plugin SHA checkouts」の記載があるバージョンだ。
GitHub Copilotを使っている場合:
2026年9月20日時点でパッチはない。暫定対策として以下を実施する。
- サードパーティ製プラグインを一時無効化
- インストール済みプラグインの一覧を監査し、見覚えのないものを削除
- Microsoftのセキュリティアドバイザリーを定期確認
Gemini CLIを使っている場合:
修正は来ない。Googleの後継製品「Antigravity」への移行を検討するか、別のエージェントに乗り換えること。
日本企業特有の注意点:
AIRはBitbucketと自己ホスト型Gitサーバー(Gitea、Gitbucketなど)も脆弱なプラットフォームとして確認している。日本企業では社内セキュリティ要件からセルフホスト型Gitを使うケースが多い。そのような環境でCopilotを使っている場合、パッチなし・自己ホスト型という二重リスクになる可能性がある。
AIコーディングエージェントのセキュリティ:光と影
Plugin4ShellはAIコーディングエージェントを標的にした最初のサプライチェーン脆弱性ではない。2026年だけでも、Cursor IDE(CVE-2026-26268、4月)、MCP基盤のRCEとブラインドプロンプトインジェクション(8月)、エージェントハーネスのRCE(8月)が報告されている。Agentjacking(SentryのMCPサーバー経由の攻撃)もその一例だ。
AIコーディングエージェントは開発者の生産性を大幅に向上させる。AnthropicはClaudeが社内R&Dの26%をリードすると発表し、そのインフラの一部がClaude Code自身だ。しかし権限が広いほど、それが侵害されたときの被害も大きい。
重要な視点は二つある。
良い面: AnthropicとOpenAIは責任ある開示に誠実に応じ、非公開開示から数週間でパッチを出した。ゼロデイとして悪用される前に修正された。Claude Codeのセキュリティガイダンス機能など、エージェントレベルのセキュリティへの投資も増えている。
影の面: MicrosoftはFortune 500の90%に展開するツールの重大な脆弱性に、3ヶ月以上対応しなかった。GoogleはパッチではなくEOLを選んだ。そして4社が独立して同じ設計上の欠陥を作り込んだ。これはAIコーディングエージェントのセキュリティレビューが業界全体で未成熟であることを示している。
AIコーディングエージェントの比較記事で整理したように、各ツールの能力差が縮まるにつれ、セキュリティ対応の速さと透明性が選定基準として浮上しつつある。Plugin4ShellはAnthropicとOpenAIに有利、MicrosoftとGoogleに不利な評価をつける出来事になった。
- 2026年5月 — AIR Security(Or Nevo、Dor Granat、Niv Hoffman)が脆弱性を発見
- 2026年6月 — AnthropicにPlugin4Shell開示。Claude Code 2.1.179で修正
- 2026年6月〜8月 — 4社すべてに非公開開示(3ヶ月の協調開示期間)
- 2026年7月29日 — OpenAI、Codex 0.146.0リリース(「Verify Git plugin SHA checkouts」)
- 2026年9月17日 — AIR Security、Plugin4Shellを公開
- 2026年9月20日時点 — Microsoft:修正なし、Gemini CLI:廃止(後継Antigravityへ)
AIコーディングエージェントのセキュリティ設定やプラグイン管理のベストプラクティスについて詳しく知りたい場合は、Claude Codeのセキュリティガイダンス記事もあわせて確認してほしい。
関連記事
- Agentjacking完全解説:偽SentryエラーがClaude CodeとCursorを乗っ取る仕組み
- Claude Codeのsecurity-guidanceプラグイン:3層レビューの仕組み
- AIコーディングエージェント比較2026:Claude Code・Cursor・Copilot実力と料金
- Claude Codeのdenyルールが無効化される脆弱性
- VS Code拡張機能の脆弱性まとめ2026年2月
免責事項: 本記事は公開情報(AIR Security社の開示、各セキュリティメディアの報道)をもとに2026年9月21日時点の情報を整理したものだ。脆弱性の状況は変動するため、最新情報はAIR Security公式ブログ(air.security)および各ベンダーのセキュリティアドバイザリーを参照してほしい。本記事の情報に基づく行動の結果について、筆者および運営者は責任を負わない。