Plugin4Shell: Your AI Coding Agent's "Pinned" Dependency Was Never Actually Pinned Security researchers at AIR disclosed Plugin4Shell, described as the first supply chain vulnerability in the AI agent ecosystem, showing that Claude Code, Codex, GitHub Copilot, and Gemini CLI check out pinned plugin commits without verifying the working tree actually matches the pinned SHA. Attackers can exploit branch name collisions or FETCH_HEAD confusion to substitute arbitrary code with zero user interaction. Anthropic and OpenAI have patched their agents, while Microsoft's Copilot remains unpatched and Google deprecated Gemini CLI without a fix, leaving users permanently exposed. You pin a plugin to a commit SHA because you did the review, you trust that exact code, and you never want it to silently change. That's the entire point of pinning. Last week, security researchers at AIR proved that four of the biggest AI coding agents — Claude Code, Codex, GitHub Copilot, and Gemini CLI — treat that pin as a polite suggestion instead of a hard constraint. They're calling it Plugin4Shell , and the researchers are blunt about what it is: "the first supply chain vulnerability of the AI agent ecosystem." Zero-click, no user interaction required, and it hits tools that a huge chunk of the industry now runs with elevated trust and shell access. Every one of these agents checks out the pinned commit — and then never verifies the checkout actually landed there. That's it. That's the whole flaw. Verification theater: the pin looks honored, the hash is right there in the config, and the working tree is running something else entirely. Vector 1 — branch name collision Claude Code, Codex, GitHub Copilot These three run something functionally equivalent to: git clone