セキュリティ企業のAir Securityが2026年9月17日、Claude Code・OpenAIのCodex・GitHub CopilotGemini CLIという、主要な4つのAIコーディングエージェントに共通する欠陥「Plugin4Shell」を公表した。プラグインを配布するマーケットプレイスが安全性の拠り所にしてきた「コミットのハッシュ値でバージョンを固定する」という仕組みそのものを、Gitの挙動を悪用するだけで無力化できるという内容だ。

攻撃者が仕込んだ罠に、利用者が気づく機会は無い。プラグインの自動更新が走った瞬間、レビュー済みのはずのコードが差し替わる。クリックも承認も要らない、いわゆるゼロクリックの遠隔コード実行(RCE)である。

⚠ 情報の鮮度について
一次情報はAir Securityの公式ブログ(2026年9月17日公開)と、同日付の英国メディアThe Registerの報道です。本記事公開時点で4日ほど経過しているため、速報ではなく整理・意味づけの記事として書いています。発見からベンダーへの通知、修正の確認までの日付は、いずれもAir Securityの公式発表に基づきます。GitHubの見解は2026年9月17日付のThe Registerの取材によるものです。

Plugin4Shellとは何か

Air Securityは、AIコーディングエージェント向けのプラグインを配布する仕組みそのものを狙う手口として、Plugin4Shellを位置づけている。これまでのAIエージェントを狙う研究の多くは、モデル自体や単体のエージェントの弱点を突くものだった。Plugin4Shellが標的にしたのは、その一段下にある配布インフラ、つまりプラグインが何百万台もの端末へ届く経路にあたるマーケットプレイスの仕組みだ。

マーケットプレイスは、審査済みのプラグインをコミットハッシュという40桁の英数字で「固定」し、それ以降は同じコードだけが動く前提で運用されている。Plugin4Shellは、この固定(SHAピン留め)が実際には検証されないまま素通りすることを突いた欠陥である。

4製品 影響を受けるAIコーディングエージェント
2製品 公表時点で修正版が出ていない製品数
CVE未採番 2026年9月18日時点

1つの設計ミスを、主要な開発元がそろって踏んでいた。特定の製品の実装ミスではなく、業界全体で繰り返された同じ思い込みであり、その結果として数百万台規模のエージェントが脆弱な状態に置かれている。

— Air Securityの公式ブログより(2026年9月17日、日本語訳)
一言でまとめると──「プラグインの安全性を保証してきたはずの固定機能が、実は固定していなかった」。しかもその欠陥を、Claude Code・Codex・GitHub Copilot・Gemini CLIという主要4製品が、申し合わせたわけでもないのに同じ形で抱えていました。

SHA固定を破る2通りの手口

Claude Code・Codex・GitHub Copilotの3製品は、プラグインをインストールする際に次の手順を踏む。プラグインのリポジトリを丸ごと取得し、審査で固定された40桁のコミットハッシュをそのまま指定して切り替える。ここで攻撃者がそのリポジトリの管理権限を握っていれば、固定されたハッシュ値とまったく同じ名前のブランチを作り、それをリポジトリの既定ブランチに設定できる。Gitは「名前がブランチとしてもコミットIDとしても有効なとき、ブランチの方を優先する」という仕様を持っており、指定したはずのコミットではなく、攻撃者が用意したブランチの中身が読み込まれる。マーケットプレイス側の審査記録には、依然として「正しいハッシュ値で固定されている」としか表示されない。

Gemini CLIは手順が異なるが、同じ穴に行き着く。こちらは特定のコミットを取得したあと、FETCH_HEADという名前を指定して切り替える。攻撃者がリポジトリの既定ブランチの名前そのものを「FETCH_HEAD」に変えてしまえば、直前に取得した正しいコミットは静かに捨てられ、攻撃者が用意した既定ブランチの中身に置き換わる。

この欠陥をとりわけ危険にしているのが、プラグインの自動更新だ。Claude CodeとCodexでは既定でバックグラウンド自動更新が有効になっている。攻撃者は最初から悪意あるコードを仕込む必要すら無い。まず無害なプラグインでマーケットプレイスの審査を通し、利用者に広く導入させたあとで、リポジトリ側だけをすり替えればよい。次の自動更新のタイミングで、利用者が既にインストール済みの「信頼しているプラグイン」が、何の操作も無いまま悪意あるコードに置き換わる。

ⓘ この欠陥が「新しい種類」とされる理由
プラグインをマーケットプレイスに登録して信頼を得ること自体は難しくないと、Air Securityは自社の過去の実験(次の第5章)で示しています。Plugin4Shellが深刻なのは、審査を通ったあとの「レビュー済みのコードだけが動く」という保証──業界がこれまでの反省を踏まえて導入した対策そのもの──を無力化する点にあります。

4製品の対応状況、直っているのは2つだけ

Air Securityは2026年5月に4製品すべてに対して動作するPoC(概念実証コード)を完成させ、2026年6月に4社へ協調開示した。そこから公表までの対応は、製品ごとに分かれている。

製品 運営元 2026年9月17日公表時点の状態
Claude Code Anthropic 修正版 2.1.179 で対応済み(6月17日に修正を確認)
Codex OpenAI 修正版 0.146.0 で対応済み(8月12日に修正を検証)
GitHub Copilot Microsoft 未修正(開示済みだが公表時点で修正版なし)
Gemini CLI Google 修正予定なし(8月4日にツール自体の廃止を回答)

GoogleはGemini CLI自体を廃止する方針で、後継の「Antigravity」への移行を利用者に勧めている。同社の回答どおりであれば、Gemini CLIを使い続ける限りこの欠陥は永久に残ることになる。GitHub Copilotについては、マイクロソフトへの開示から3か月が過ぎた公表時点でも、修正の見通しは示されていない。

GitHubの「うちでは起きない」と研究者の反論

The Registerの取材に対し、GitHubの広報担当者は「GitHubはコミットのハッシュ値に似せたブランチ名やタグ名の作成を許可していないため、この脆弱性はGitHub上では悪用できない」と説明した。実際、攻撃の前提になっている「40桁の英数字と同じ名前のブランチを作る」という操作を、GitHub自体は仕様として拒否する。

Air Securityはこれに対し、プラグインのマーケットプレイスはGitHubだけでホストされているわけではないと反論している。GitHub Copilotは、Bitbucketや自前で構築したGitサーバーをマーケットプレイスの接続先として使う構成にも対応しており、そちらのホストの多くは40桁のブランチ名を拒否しない。GitHub本体の仕様は、GitHub上に置かれたマーケットプレイスだけを守るものであり、Copilotという製品全体を守るものではない、というのが研究者側の主張だ。

ⓘ 読み方の注意
「GitHubでは起きない」という説明そのものは技術的に正しく、GitHub本体でホストされたマーケットプレイスの利用者には当てはまります。問題は、GitHub CopilotというツールがGitHub以外のホストにも対応している点で、その組み合わせで使っている利用者には、この説明は当てはまりません。なお、Claude Codeも修正前はBitbucketや自前ホストのマーケットプレイスを公式に対応構成として案内していたことが、Air Securityの発表で明らかになっています(現在は修正済み)。

この研究チームが積み上げてきた実績

Air Securityは今回のPlugin4Shellを、自分たちが続けてきた一連の実証実験の「第3幕」と位置づけている。前の2つの発表を押さえておくと、今回の指摘が机上の空論ではないことがわかる。

01
The Story of Skills(2026年6月)

研究チームは無害を装ったプラグインを1つ作り、星の数36,000超の人気マーケットプレイスの審査を通したうえで、Instagram広告で拡散させた。実際にこれだけで26,000超のエージェントの制御を握れたという。

02
SkillJacking(2026年8月)

今度は新しいプラグインを作る必要すら無かった。既に使われている925個のプラグインについて、開発者本人が管理を離れたリポジトリだけを乗っ取ることで、134,000のエージェントに影響が及んだ。

03
Plugin4Shell(2026年9月)

業界はSkillJackingのような乗っ取りへの対策として、コミットのSHA固定を採用してきた。Plugin4Shellは、その対策自体をすり抜ける手口であり、Air Securityは「数百万台規模のエージェント・マシンに影響が及ぶ」としている(この規模の具体的な内訳は非公表)。

2026年6月の実験では26,000台超、2026年8月の実験では134,000台と、確認された規模だけでも5倍超に拡大している。同じチームが同じ種類の穴を指摘し続けているという経緯は、今回の発表の信頼度を測るうえでも見過ごせない。

利用者が確認すべきこと

この欠陥は、AIコーディングエージェントにマーケットプレイス経由でプラグインを入れて使っている人すべてに関わる。製品ごとに、確認すべき点は異なる。

A
Claude Code・Codexを使っている人

バージョンを確認する。Claude Codeは2.1.179以降、Codexは0.146.0以降であれば、この欠陥は修正済みだ。古いバージョンのまま自動更新を止めている場合は、更新を急いだほうがよい。

B
GitHub Copilotを使っている人

組織のプラグイン・マーケットプレイスの接続先が、GitHub本体なのか、Bitbucketや自前ホストのGitサーバーなのかを確認する。後者であれば、公表時点では回避策が無い。

C
Gemini CLIを使っている人

Googleはこのツール自体を廃止する方針で、修正の予定は無い。プラグインを使う運用を続けるなら、後継の「Antigravity」への移行を検討する段階に入っている。

D
組織としての備え

エージェントのプラグインをバックグラウンドで自動更新する設定にしている場合、更新のたびに何が起きたかをログで追えるようにしておく。今回のような手口では、利用者の操作記録には何も残らない。

💡 選ぶ側の視点
AIコーディングエージェントを比較する際、モデルの賢さや料金だけでなく、プラグインの配布経路をどこまで限定できるか、審査済みのコードが本当に審査どおり動くかを検証する仕組みがあるかも、確認しておきたい項目に加わりつつあります。

編集部の見立て

Editor's Opinion

今回の一件で最も気になるのは、攻撃の技巧そのものよりも、4社がそろって同じ設計判断をしていたという点です。SHA固定という仕組みは、コミット後の中身を検証せず「切り替えができたこと」だけで安全性を保証していました。この前提は、GitとGitHubの外側で運用されるマーケットプレイスの存在を軽視していなければ生まれない発想です。Anthropicが修正前にBitbucketや自前ホストを公式対応として案内していた事実は、その軽視が一時的な見落としではなく、業界の標準的な作り方そのものに根ざしていたことを示しています。

GitHubの「うちでは起きない」という説明は、技術的な言葉として間違っていません。ただ、読者が実際に使っているのはGitHubという会社ではなく、GitHub Copilotという製品です。製品の一部だけを切り出して安全だと述べる説明は、その製品を丸ごと使っている人には有益な情報になりません。この種の食い違いは、今回に限らず今後も繰り返されると見ています。

Air Securityの過去2回の発表を踏まえると、今回の「数百万台」という数字を誇張と切り捨てるのは早計です。一方で、その具体的な内訳は非公表のままであり、検証可能な数字は26,000台と134,000台の2つにとどまります。両方の事実を、割り引かずに並べておく必要があると考えています。

まとめ

セキュリティ企業Air Securityが2026年9月17日、Claude Code・Codex・GitHub Copilot・Gemini CLIという主要4製品に共通する脆弱性「Plugin4Shell」を公表しました。プラグインの安全性を守ってきたコミットハッシュの固定を、Gitのブランチ名の仕組みを使ってすり抜け、クリック不要で任意のコードを実行できる欠陥です。

Claude CodeとCodexは既に修正版が出ていますが、GitHub Copilotは公表時点で未修正、Gemini CLIはツール自体が廃止される方針で修正の予定がありません。GitHubは自社プラットフォーム上では悪用できないと説明していますが、Copilotが対応するBitbucketや自前ホストのマーケットプレイス経由では、この説明は当てはまりません。

Air Securityは2026年6月に26,000台超、2026年8月に134,000台のエージェントへの影響を実証してきた研究チームで、今回はその延長線上での指摘です。影響の正確な総数は非公表ですが、対策として業界が採用したSHA固定そのものが破られたという事実は、検証済みです。

GitHub Copilotの修正がいつ出るかについて、2026年9月時点でマイクロソフトから公式なアナウンスは無い。Gemini CLIはこの先も直らない。自分が使っているエージェントのマーケットプレイスが、GitHub本体なのかそれ以外のホストなのかを確認する一手間が、いまのところ唯一の見分け方になっている。