Air Securityは9月17日、AnthropicのClaude Code、OpenAIのCodex、GitHub Copilot、GoogleのGemini CLIに共通する欠陥「Plugin4Shell」を公表した。マーケットプレイスはプラグインをレビュー済みコミットのSHAで固定するが、各エージェントはgit checkoutのあと、作業ツリーのHEADがそのSHAと一致するかを確認していない。
背景
Gitは40桁の十六進名がブランチとしても解釈できる。攻撃者がプラグインリポジトリを掌握し、ピン留めSHAと同名のブランチをデフォルトにすると、クローン後のcheckoutはそのブランチを優先する。GitHubはハッシュ形のブランチ名を拒否するが、BitbucketやセルフホストGitでは通る。Gemini CLIは別経路で、デフォルトブランチ名FETCH_HEADにより取得済みコミットが捨てられる。Claude CodeとCodexではプラグイン自動更新が既定のため、既存導入分への差し替えも無操作で起き得る。
エンジニアへの影響
修正はエージェント側にしか置けない。Claude Codeは2.1.179、Codexは0.146.0で対応済み。Copilotは開示時点で修正なし。Gemini CLIは廃止方針で修正されず、AirはAntigravityへの移行を勧めている。プラグインを使うチームはバージョン確認と、GitHub以外のマーケットプレイス利用の見直しが必要になる。