Latest News

Plugin4Shell: the zero-click RCE that proves SHA-pinning was never a guarantee

Rushil ShahRushil Shah
9 min read
Share

A missing one-line check in four major coding agents turned plugin SHA-pinning into theatre. Claude Code 2.1.179 and Codex 0.146.0 are patched; GitHub Copilot has no fix and Gemini CLI never will. Here's the version audit, the plugin inventory, and the policy call every team running agents needs to make this week.

TL;DR

Researchers at AIR disclosed Plugin4Shell, a zero-click remote code execution flaw in the plugin systems of Claude Code, OpenAI Codex, GitHub Copilot and Gemini CLI. All four agents check out the pinned plugin commit but never verify that the checkout actually landed on it, so an attacker who controls a plugin repo can make a branch named like the pinned hash win the resolution and run their code while the agent reports a clean, pinned install. Anthropic fixed it in Claude Code 2.1.179 and OpenAI in Codex 0.146.0. Microsoft has shipped no Copilot fix and Google deprecated Gemini CLI rather than patch it. If you run coding agents, today's work is a version audit, a plugin inventory, and a written policy decision on the two unpatched products.

What was actually disclosed

Per Help Net Security, AIR's research lab found the same design error in all four leading coding agents: the agent clones a plugin repository, checks out the SHA the marketplace pinned, and then trusts that the checkout did what it was told. It never asks git where HEAD ended up.

That missing question is the whole bug. In git, when a name is both a valid ref and a valid object ID, the ref wins — you get an "ambiguous refname" warning and nothing else. So an attacker who controls the upstream plugin repo creates a branch whose name is the exact 40-hex pinned commit, makes it the default branch, and points it at malicious code. The plain clone brings that branch down locally, git checkout <sha> resolves to the branch, and the agent happily reports a successful install at the reviewed commit. Gemini CLI has a separate variant of the same failure: it fetches the pinned commit and then runs git checkout FETCH_HEAD, which resolves to a branch named FETCH_HEAD if the repo has one, quietly discarding the commit it just fetched.

AIR frames it as a first — "It is the first supply chain vulnerability of the AI agent ecosystem," the researchers said. The framing is marketing-adjacent, but the mechanism is not. This is a client-side verification failure in a distribution layer that now reaches millions of developer machines and CI runners.

The attack chain, as AIR documents it

1
Plant or hijack

The attacker publishes a genuinely useful plugin that passes review — or takes over the repo behind a plugin someone else already wrote.

2
Adoption at a pinned commit

Every install is locked to the reviewed SHA. The security model looks like it is working.

3
Routine version bump

A second, still-benign commit ships. The marketplace maintainer approves the PR that re-pins to it.

4
Rug-pull

The attacker creates a branch named after the new pinned SHA, makes it the default, and fills it with malicious code. The pinned commit itself stays untouched and auditable.

5
Zero-click RCE

Background auto-update — the default in Claude Code and Codex — re-runs the checkout on machines that already have the plugin. No prompt, no install step, no signal.

Why this one is worse than the usual plugin scare

Most agent security stories punish careless behaviour: someone installed a random skill, pasted an untrusted MCP server, ran an agent with --yolo. Those are correctable with policy. This one punishes the teams that did the mature thing. If you stood up an internal marketplace, reviewed plugin source, and pinned to a reviewed commit, you built your control on a primitive that did not hold. Every downstream process that inherited the pin — change control, SBOM entries, your "we only run vetted plugins" slide — inherited the failure with it.

Doing the right thing does not protect you.

— AIR research lab, Plugin4Shell disclosure

The other reason to take it seriously is that the surrounding steps are already proven at scale. AIR's prior work is the supply half of the chain: a malicious skill it built reached more than 26,000 agents, and its SkillJacking research found 925 in-use skills hijacked from their original maintainers across 134,000 agents. Plugin4Shell is the part that defeats the containment mechanism built to stop exactly that.

4 of 4 major coding agents shipped the same missing-verification bug Source: Help Net Security, 2026
134,000 agents reached via 925 hijacked in-use skills in AIR's earlier SkillJacking work Source: AIR, 2026
26,000+ agents controlled by a single malicious skill AIR published to a trusted marketplace Source: AIR, 2026
2 of the four vendors have shipped a fix; two have not and one never will Source: Help Net Security, 2026

Vendor status, and what each one means operationally

AgentStatusWhat you do about it
Claude CodePatched in 2.1.179Pin your fleet to ≥ 2.1.179 and verify on every dev machine and CI image. Auto-update is the default, which cuts both ways — it delivered the fix to most users already.
OpenAI CodexPatched in 0.146.0Same: enforce a floor version in provisioning and in your CI base images, not just on laptops.
GitHub CopilotNo fix shippedTreat plugin installs as unpinned code execution. Disable marketplace plugins where you can, restrict to first-party-hosted repos, and get the exception in writing.
Gemini CLIDeprecated, will not be patchedMigration decision, not a patch decision. Google points users to Antigravity, which has no plugin SHA-pinning to bypass. Every remaining install stays exposed indefinitely.

The Gemini CLI response deserves a moment. "Deprecated" is not a mitigation for the machines still running it, and deprecation notices do not uninstall binaries from CI containers built eight months ago. If you have Gemini CLI anywhere in a pipeline, that is now an inventory-and-removal task with a hard deadline, not a roadmap item.

The honest caveats

Three things the disclosure is careful about, and one thing it is quiet about.

Exploitability depends on the git host. The branch-name variant only works where a branch can be named like a 40-hex hash. AIR notes GitHub rejects such names outright, while Bitbucket and self-hosted git servers allow them — and marketplaces on those hosts are a supported configuration. So a GitHub-only plugin supply chain blunts the Claude Code/Codex/Copilot variant. It does nothing for the Gemini CLI variant, because FETCH_HEAD is a perfectly ordinary branch name anywhere.

No confirmed in-the-wild exploitation is claimed. AIR reports working proof-of-concept exploits against all four agents, found in May 2026 and disclosed in June under coordinated disclosure. Proven mechanism plus proven takeover techniques is a serious combination, but it is not the same as an incident. Say that plainly to your stakeholders rather than letting the word "zero-click" do the arguing.

The researchers sell the remedy. AIR states that enterprises using its marketplace and filtering products were not affected. That does not weaken the technical finding — the git behaviour is verifiable in a minute on your own machine — but it does mean the "no marketplace can fix this" framing arrives with a commercial edge. The load-bearing claim is narrower and correct: because the pin is resolved on the client, only an agent-side assertion restores the guarantee.

What nobody has addressed: the agents reported a successful install at the pinned commit while running attacker code. That means your logs lied. Any retrospective hunt across the exposure window has to reconcile on-disk plugin content against the pinned SHA, because the install telemetry is not evidence of anything.

bash
# Reconcile what is actually checked out against what was pinned.
# Run across plugin/skill directories on dev machines and CI images.
for d in $(find "$HOME" -maxdepth 6 -type d -name .git 2>/dev/null); do
  repo=$(dirname "$d")
  head=$(git -C "$repo" rev-parse HEAD 2>/dev/null)
  branch=$(git -C "$repo" rev-parse --abbrev-ref HEAD 2>/dev/null)
  # Flag any local branch whose name looks like a commit hash, or is FETCH_HEAD
  git -C "$repo" for-each-ref --format='%(refname:short)' refs/heads \
    | grep -E '^([0-9a-f]{40}|FETCH_HEAD)

  

 >/dev/null \\\n    && echo \"SUSPECT $repo (HEAD=$head branch=$branch)\"\ndone
\n
\n\n

What changes for teams integrating agents

\n\n
\n
\n !\n

Treating the pinned SHA as a trust boundary

\n
\n

A pin is a request, not a proof. It travels through a client you do not control, over a protocol with name-resolution ambiguity, into a directory whose contents nobody re-reads. Four independent engineering orgs made the same assumption, which tells you it is the intuitive one.

\n
Fix: verify after the fact. Resolve HEAD post-checkout and compare it to the pin; better, hash the plugin's working tree at review time and re-check that digest on load. Content addressing beats reference addressing every time.
\n
\n\n
\n
\n !\n

Leaving plugin auto-update on in CI

\n
\n

Background auto-update is what upgrades this from a supply-chain risk to a zero-click one. In a developer's terminal that is a trade-off. In a build runner with repo credentials and cloud roles, it is an unattended code-execution channel with no human in the loop.

\n
Fix: agents in CI get frozen, pre-baked plugin sets and no network path to a marketplace. Promote plugin versions through the same change process as any other dependency.
\n
\n\n
\n
\n May 2026\n

AIR finds the flaw with working PoCs against all four agents.

\n
\n
\n Jun 2026\n

Coordinated disclosure to all four vendors. Anthropic confirms the Claude Code 2.1.179 fix on 17 June.

\n
\n
\n Aug 2026\n

Google confirms no fix will ship for the deprecated Gemini CLI (4 Aug). Codex 0.146.0 verified fixed (12 Aug).

\n
\n
\n Sep 17–18 2026\n

AIR publishes; Help Net Security reports two of four agents still without a patch.

\n
\n
\n\n

The structural read: agent add-on ecosystems shipped marketplace-grade distribution with alpha-grade verification. Package managers spent fifteen years learning that references are not identities — that you sign artefacts, hash contents, and verify at load. Plugin, skill and MCP registries are re-learning it in public, one disclosure at a time, with the difference that the payload here runs with a developer's full reach. If you are building on agents, your dependency policy needs to cover plugins, skills and MCP servers with the same seriousness as npm and PyPI. We cover how we structure that in agent automation work and in our research notes; if you want a version audit and plugin inventory run against your fleet this week, start here.

\n\n
\n

Frequently Asked Questions

\n
\n

Which versions fix Plugin4Shell?

\n
\n

Anthropic patched Claude Code in version 2.1.179 and OpenAI patched Codex in 0.146.0, both after AIR's coordinated disclosure. Microsoft has not shipped a fix for GitHub Copilot, and Google deprecated Gemini CLI rather than patching it, advising users to migrate to Antigravity. Updating the agent is the only complete mitigation where a fix exists, because the pin is resolved inside the client.

\n
\n
\n
\n

Why can't the marketplace fix this instead?

\n
\n

Because the pinned commit is resolved on the client, at checkout time, inside the agent. A marketplace can reduce exposure by only allowing git hosts that reject 40-hex branch names — effectively GitHub-only — but that excludes hosts the agents officially support, and it does nothing for the Gemini CLI variant, which abuses a branch named FETCH_HEAD. Only an agent-side check restores the guarantee.

\n
\n
\n
\n

Am I exposed if I only install plugins from an internal, reviewed marketplace?

\n
\n

Yes, on an unpatched agent. AIR's point is that review and pinning are exactly the controls this bypasses: the review passes, the pin is written, and different code installs. Internal marketplaces reduce who can plant a plugin, but they do not change how the agent resolves the checkout. Your protection comes from the agent version and from verifying plugin contents on disk.

\n
\n
\n
\n

Has this been exploited in the wild?

\n
\n

No in-the-wild exploitation has been reported. AIR built working proof-of-concept exploits against all four agents in May 2026 and disclosed them in June. The related steps — publishing a malicious plugin that spreads, and hijacking repos behind trusted plugins — have been demonstrated at scale in the same team's earlier research, which is why the combined risk is treated as live rather than theoretical.

\n
\n
\n
\n

What should we do in the next 24 hours?

\n
\n

Three things. Audit agent versions across laptops, dev containers and CI images, enforcing floors of Claude Code 2.1.179 and Codex 0.146.0. Inventory every installed plugin, skill and MCP server, noting which git host each comes from. Then make a written policy call on GitHub Copilot plugins and on removing Gemini CLI, since neither will receive a fix. Reconcile on-disk plugin contents against pinned SHAs while you are there.

\n
\n
\n
","excerpt":"A missing one-line check in four major coding agents turned plugin SHA-pinning into theatre. Claude Code 2.1.179 and Codex 0.146.0 are patched; GitHub Copilot has no fix and Gemini CLI never will. Here's the version audit, the plugin inventory, and the policy call every team running agents needs to make this week.","featured_image_url":"https://v3b.fal.media/files/b/0aab4ed5/hnl1nzaI-9cbWU2Txz8nk.jpg","author_id":"45f30bbc-e29b-4181-9979-3266b003a8f0","category_id":"69654ca2-7a15-4811-b740-6a5f28eab501","tags":["AI security","coding agents","supply chain","Claude Code","vulnerability","DevSecOps"],"target_keywords":[],"primary_keyword":"Plugin4Shell: zero-click RCE hits plugin systems in Claude C","is_featured":false,"is_ai_generated":true,"seo_title":"Plugin4Shell: Zero-Click RCE in Claude Code, Codex, Copilot, Gemini CLI","seo_description":"AIR's Plugin4Shell bypasses plugin SHA-pinning in four major coding agents, giving zero-click RCE. Claude Code and Codex are patched; Copilot and Gemini CLI are not. What to audit today.","schema_markup":[{"url":"https://twarx.com/research/plugin4shell-coding-agent-plugin-rce","@type":"Article","author":{"url":"https://www.linkedin.com/in/rushil-shahh","name":"Rushil Shah","@type":"Person","image":"https://i.ibb.co/kgffhX2j/Chat-GPT-Image-Jun-8-2026-01-34-11-PM.png","sameAs":["https://www.linkedin.com/in/rushil-shahh"],"jobTitle":"AI Systems Builder & Founder, Twarx","worksFor":{"url":"https://twarx.com","logo":{"url":"https://twarx.com/og-image.png","@type":"ImageObject"},"name":"Twarx","@type":"Organization","legalName":"Twarx Ventures FZ-LLC"},"knowsAbout":["Agentic AI","Multi-Agent Systems","AI Workflow Automation","n8n","LangGraph","AI Integration"]},"@context":"https://schema.org","citation":[{"url":"https://www.helpnetsecurity.com/2026/09/18/plugin4shell-ai-coding-agents-vulnerability/","name":"Zero-click RCE vulnerability hit four major AI coding agents, two remain unpatched — Help Net Security","@type":"CreativeWork"},{"url":"https://www.air.security/blog-posts/plugin4shell","name":"Plugin4Shell — Zero Click RCE Vulnerability found in top 4 most popular coding agents (AIR)","@type":"CreativeWork"}],"headline":"Plugin4Shell: the zero-click RCE that proves SHA-pinning was never a guarantee","keywords":"AI security, coding agents, supply chain, Claude Code, vulnerability, DevSecOps","publisher":{"url":"https://twarx.com","logo":{"url":"https://twarx.com/og-image.png","@type":"ImageObject"},"name":"Twarx","@type":"Organization","legalName":"Twarx Ventures FZ-LLC"},"wordCount":2047,"inLanguage":"en","description":"AIR's Plugin4Shell bypasses plugin SHA-pinning in four major coding agents, giving zero-click RCE. Claude Code and Codex are patched; Copilot and Gemini CLI are not. What to audit today.","dateModified":"2026-09-21T10:52:57.638Z","datePublished":"2026-09-21T10:52:57.638Z","mainEntityOfPage":{"@id":"https://twarx.com/research/plugin4shell-coding-agent-plugin-rce","@type":"WebPage"}}],"citations":[{"url":"https://www.helpnetsecurity.com/2026/09/18/plugin4shell-ai-coding-agents-vulnerability/","title":"Zero-click RCE vulnerability hit four major AI coding agents, two remain unpatched — Help Net Security"},{"url":"https://www.air.security/blog-posts/plugin4shell","title":"Plugin4Shell — Zero Click RCE Vulnerability found in top 4 most popular coding agents (AIR)"}],"read_time_minutes":9,"word_count":2047,"status":"published","published_at":"2026-09-21T10:52:58.894+00:00","scheduled_for":null,"views":0,"batch_id":"news-2026-09-21","created_at":"2026-09-21T10:52:58.94317+00:00","updated_at":"2026-09-21T11:26:39.372912+00:00","authors":{"bio":"Rushil Shah is the founder of Twarx and an AI systems builder who has spent years designing autonomous workflows, multi-agent architectures, and AI-powered business tools. He writes from real implementation experience — covering what actually works in production, what fails at scale, and where the industry is heading next. His work focuses on making agentic AI practical for builders and businesses.","name":"Rushil Shah","title":"AI Systems Builder & Founder, Twarx","expertise":["Agentic AI","Multi-Agent Systems","AI Workflow Automation","n8n","LangGraph","AI Business Tools"],"avatar_url":"https://i.ibb.co/kgffhX2j/Chat-GPT-Image-Jun-8-2026-01-34-11-PM.png","linkedin_url":"https://www.linkedin.com/in/rushil-shahh"},"categories":{"name":"Latest News","slug":"latest-news","color":"#6366F1"},"post_images":[]},"related":[{"id":"74034c3a-2882-4529-87a7-1d96d438329c","title":"California's AI 'Kill Switch' Order Is a Reporting Change in Disguise — Here's What Breaks for Agent Teams","slug":"california-ai-kill-switch-executive-order-n-9-26-what-changes","excerpt":"Governor Newsom's September 18 executive order gets headlines for an 'AI kill switch.' The order doesn't create one — it orders a feasibility report due November 16. The clause that will actually hit your vendor contracts is item (d): expanding the definition of a reportable critical safety incident to cover loss-of-control events like the Hugging Face intrusion. That definition change propagates downstream into enterprise AI policy long before any switch gets built.","featured_image_url":"https://v3b.fal.media/files/b/0aab4ed6/6tdS4h00im31lJhgKEi-U.jpg","is_featured":false,"is_ai_generated":true,"read_time_minutes":9,"word_count":1947,"views":0,"published_at":"2026-09-21T10:58:28.54+00:00","tags":["AI regulation","California SB 53","AI governance","agentic AI","AI safety","enterprise AI","incident response","compliance"],"primary_keyword":"Newsom executive order advances California AI 'kill switch' ","category_name":"Latest News","category_slug":"latest-news","category_color":"#6366F1","author_name":"Rushil Shah","author_title":"AI Systems Builder & Founder, Twarx","author_avatar":"https://i.ibb.co/kgffhX2j/Chat-GPT-Image-Jun-8-2026-01-34-11-PM.png"},{"id":"f15ad57b-6054-4a20-89e0-74741fdf79c3","title":"A Three-Person Team Used Claude Opus 5 to Reach OpenAI's Internal Monorepo — and the Real Lesson Isn't the Image Bug","slug":"hacktron-opus-5-openai-monorepo-agent-security","excerpt":"Three researchers turned a forum image upload into a pull request in OpenAI's internal monorepo in under 72 hours. Opus 4.8 couldn't finish the exploit; Opus 5 did, hours after release. The uncomfortable part isn't the memory bug — it's that agent connectors turned one forum compromise into repo access, and nobody detected it.","featured_image_url":"https://v3b.fal.media/files/b/0aab4ed6/IAeVSfdZdIEf0t0uD1DYQ.jpg","is_featured":false,"is_ai_generated":true,"read_time_minutes":8,"word_count":1908,"views":0,"published_at":"2026-09-21T10:55:21.164+00:00","tags":["AI security","agent deployment","OpenAI","Anthropic","vulnerability disclosure","supply chain security","SSO","red teaming"],"primary_keyword":"Hacktron chains OpenAI vulnerabilities with Claude Opus 5 to","category_name":"Latest News","category_slug":"latest-news","category_color":"#6366F1","author_name":"Rushil Shah","author_title":"AI Systems Builder & Founder, Twarx","author_avatar":"https://i.ibb.co/kgffhX2j/Chat-GPT-Image-Jun-8-2026-01-34-11-PM.png"}]}
>/dev/null \ && echo "SUSPECT $repo (HEAD=$head branch=$branch)" done

What changes for teams integrating agents

!

Treating the pinned SHA as a trust boundary

A pin is a request, not a proof. It travels through a client you do not control, over a protocol with name-resolution ambiguity, into a directory whose contents nobody re-reads. Four independent engineering orgs made the same assumption, which tells you it is the intuitive one.

Fix: verify after the fact. Resolve HEAD post-checkout and compare it to the pin; better, hash the plugin's working tree at review time and re-check that digest on load. Content addressing beats reference addressing every time.
!

Leaving plugin auto-update on in CI

Background auto-update is what upgrades this from a supply-chain risk to a zero-click one. In a developer's terminal that is a trade-off. In a build runner with repo credentials and cloud roles, it is an unattended code-execution channel with no human in the loop.

Fix: agents in CI get frozen, pre-baked plugin sets and no network path to a marketplace. Promote plugin versions through the same change process as any other dependency.
May 2026

AIR finds the flaw with working PoCs against all four agents.

Jun 2026

Coordinated disclosure to all four vendors. Anthropic confirms the Claude Code 2.1.179 fix on 17 June.

Aug 2026

Google confirms no fix will ship for the deprecated Gemini CLI (4 Aug). Codex 0.146.0 verified fixed (12 Aug).

Sep 17–18 2026

AIR publishes; Help Net Security reports two of four agents still without a patch.

The structural read: agent add-on ecosystems shipped marketplace-grade distribution with alpha-grade verification. Package managers spent fifteen years learning that references are not identities — that you sign artefacts, hash contents, and verify at load. Plugin, skill and MCP registries are re-learning it in public, one disclosure at a time, with the difference that the payload here runs with a developer's full reach. If you are building on agents, your dependency policy needs to cover plugins, skills and MCP servers with the same seriousness as npm and PyPI. We cover how we structure that in agent automation work and in our research notes; if you want a version audit and plugin inventory run against your fleet this week, start here.

Frequently Asked Questions

Which versions fix Plugin4Shell?

Anthropic patched Claude Code in version 2.1.179 and OpenAI patched Codex in 0.146.0, both after AIR's coordinated disclosure. Microsoft has not shipped a fix for GitHub Copilot, and Google deprecated Gemini CLI rather than patching it, advising users to migrate to Antigravity. Updating the agent is the only complete mitigation where a fix exists, because the pin is resolved inside the client.

Why can't the marketplace fix this instead?

Because the pinned commit is resolved on the client, at checkout time, inside the agent. A marketplace can reduce exposure by only allowing git hosts that reject 40-hex branch names — effectively GitHub-only — but that excludes hosts the agents officially support, and it does nothing for the Gemini CLI variant, which abuses a branch named FETCH_HEAD. Only an agent-side check restores the guarantee.

Am I exposed if I only install plugins from an internal, reviewed marketplace?

Yes, on an unpatched agent. AIR's point is that review and pinning are exactly the controls this bypasses: the review passes, the pin is written, and different code installs. Internal marketplaces reduce who can plant a plugin, but they do not change how the agent resolves the checkout. Your protection comes from the agent version and from verifying plugin contents on disk.

Has this been exploited in the wild?

No in-the-wild exploitation has been reported. AIR built working proof-of-concept exploits against all four agents in May 2026 and disclosed them in June. The related steps — publishing a malicious plugin that spreads, and hijacking repos behind trusted plugins — have been demonstrated at scale in the same team's earlier research, which is why the combined risk is treated as live rather than theoretical.

What should we do in the next 24 hours?

Three things. Audit agent versions across laptops, dev containers and CI images, enforcing floors of Claude Code 2.1.179 and Codex 0.146.0. Inventory every installed plugin, skill and MCP server, noting which git host each comes from. Then make a written policy call on GitHub Copilot plugins and on removing Gemini CLI, since neither will receive a fix. Reconcile on-disk plugin contents against pinned SHAs while you are there.

AI securitycoding agentssupply chainClaude CodevulnerabilityDevSecOps

Published

AI-assisted writing · Reviewed by the Twarx research team

Share:
Share

Research digest

AI Research Briefing

Honest insights on AI agents, Small Language Models, and local RAG. No hype. Only when we have something worth sending.

  • No hype, just measurable outcomes
  • Read by 2,400+ engineers
  • Unsubscribe anytime

Continue reading

More from Articles

>/dev/null \\\n && echo \"SUSPECT $repo (HEAD=$head branch=$branch)\"\ndone\n\n\n

What changes for teams integrating agents

\n\n
\n
\n !\n

Treating the pinned SHA as a trust boundary

\n
\n

A pin is a request, not a proof. It travels through a client you do not control, over a protocol with name-resolution ambiguity, into a directory whose contents nobody re-reads. Four independent engineering orgs made the same assumption, which tells you it is the intuitive one.

\n
Fix: verify after the fact. Resolve HEAD post-checkout and compare it to the pin; better, hash the plugin's working tree at review time and re-check that digest on load. Content addressing beats reference addressing every time.
\n
\n\n
\n
\n !\n

Leaving plugin auto-update on in CI

\n
\n

Background auto-update is what upgrades this from a supply-chain risk to a zero-click one. In a developer's terminal that is a trade-off. In a build runner with repo credentials and cloud roles, it is an unattended code-execution channel with no human in the loop.

\n
Fix: agents in CI get frozen, pre-baked plugin sets and no network path to a marketplace. Promote plugin versions through the same change process as any other dependency.
\n
\n\n
\n
\n May 2026\n

AIR finds the flaw with working PoCs against all four agents.

\n
\n
\n Jun 2026\n

Coordinated disclosure to all four vendors. Anthropic confirms the Claude Code 2.1.179 fix on 17 June.

\n
\n
\n Aug 2026\n

Google confirms no fix will ship for the deprecated Gemini CLI (4 Aug). Codex 0.146.0 verified fixed (12 Aug).

\n
\n
\n Sep 17–18 2026\n

AIR publishes; Help Net Security reports two of four agents still without a patch.

\n
\n
\n\n

The structural read: agent add-on ecosystems shipped marketplace-grade distribution with alpha-grade verification. Package managers spent fifteen years learning that references are not identities — that you sign artefacts, hash contents, and verify at load. Plugin, skill and MCP registries are re-learning it in public, one disclosure at a time, with the difference that the payload here runs with a developer's full reach. If you are building on agents, your dependency policy needs to cover plugins, skills and MCP servers with the same seriousness as npm and PyPI. We cover how we structure that in agent automation work and in our research notes; if you want a version audit and plugin inventory run against your fleet this week, start here.

\n\n
\n

Frequently Asked Questions

\n
\n

Which versions fix Plugin4Shell?

\n
\n

Anthropic patched Claude Code in version 2.1.179 and OpenAI patched Codex in 0.146.0, both after AIR's coordinated disclosure. Microsoft has not shipped a fix for GitHub Copilot, and Google deprecated Gemini CLI rather than patching it, advising users to migrate to Antigravity. Updating the agent is the only complete mitigation where a fix exists, because the pin is resolved inside the client.

\n
\n
\n
\n

Why can't the marketplace fix this instead?

\n
\n

Because the pinned commit is resolved on the client, at checkout time, inside the agent. A marketplace can reduce exposure by only allowing git hosts that reject 40-hex branch names — effectively GitHub-only — but that excludes hosts the agents officially support, and it does nothing for the Gemini CLI variant, which abuses a branch named FETCH_HEAD. Only an agent-side check restores the guarantee.

\n
\n
\n
\n

Am I exposed if I only install plugins from an internal, reviewed marketplace?

\n
\n

Yes, on an unpatched agent. AIR's point is that review and pinning are exactly the controls this bypasses: the review passes, the pin is written, and different code installs. Internal marketplaces reduce who can plant a plugin, but they do not change how the agent resolves the checkout. Your protection comes from the agent version and from verifying plugin contents on disk.

\n
\n
\n
\n

Has this been exploited in the wild?

\n
\n

No in-the-wild exploitation has been reported. AIR built working proof-of-concept exploits against all four agents in May 2026 and disclosed them in June. The related steps — publishing a malicious plugin that spreads, and hijacking repos behind trusted plugins — have been demonstrated at scale in the same team's earlier research, which is why the combined risk is treated as live rather than theoretical.

\n
\n
\n
\n

What should we do in the next 24 hours?

\n
\n

Three things. Audit agent versions across laptops, dev containers and CI images, enforcing floors of Claude Code 2.1.179 and Codex 0.146.0. Inventory every installed plugin, skill and MCP server, noting which git host each comes from. Then make a written policy call on GitHub Copilot plugins and on removing Gemini CLI, since neither will receive a fix. Reconcile on-disk plugin contents against pinned SHAs while you are there.

\n
\n
\n
","excerpt":"A missing one-line check in four major coding agents turned plugin SHA-pinning into theatre. Claude Code 2.1.179 and Codex 0.146.0 are patched; GitHub Copilot has no fix and Gemini CLI never will. Here's the version audit, the plugin inventory, and the policy call every team running agents needs to make this week.","featured_image_url":"https://v3b.fal.media/files/b/0aab4ed5/hnl1nzaI-9cbWU2Txz8nk.jpg","author_id":"45f30bbc-e29b-4181-9979-3266b003a8f0","category_id":"69654ca2-7a15-4811-b740-6a5f28eab501","tags":["AI security","coding agents","supply chain","Claude Code","vulnerability","DevSecOps"],"target_keywords":[],"primary_keyword":"Plugin4Shell: zero-click RCE hits plugin systems in Claude C","is_featured":false,"is_ai_generated":true,"seo_title":"Plugin4Shell: Zero-Click RCE in Claude Code, Codex, Copilot, Gemini CLI","seo_description":"AIR's Plugin4Shell bypasses plugin SHA-pinning in four major coding agents, giving zero-click RCE. Claude Code and Codex are patched; Copilot and Gemini CLI are not. What to audit today.","schema_markup":[{"url":"https://twarx.com/research/plugin4shell-coding-agent-plugin-rce","@type":"Article","author":{"url":"https://www.linkedin.com/in/rushil-shahh","name":"Rushil Shah","@type":"Person","image":"https://i.ibb.co/kgffhX2j/Chat-GPT-Image-Jun-8-2026-01-34-11-PM.png","sameAs":["https://www.linkedin.com/in/rushil-shahh"],"jobTitle":"AI Systems Builder & Founder, Twarx","worksFor":{"url":"https://twarx.com","logo":{"url":"https://twarx.com/og-image.png","@type":"ImageObject"},"name":"Twarx","@type":"Organization","legalName":"Twarx Ventures FZ-LLC"},"knowsAbout":["Agentic AI","Multi-Agent Systems","AI Workflow Automation","n8n","LangGraph","AI Integration"]},"@context":"https://schema.org","citation":[{"url":"https://www.helpnetsecurity.com/2026/09/18/plugin4shell-ai-coding-agents-vulnerability/","name":"Zero-click RCE vulnerability hit four major AI coding agents, two remain unpatched — Help Net Security","@type":"CreativeWork"},{"url":"https://www.air.security/blog-posts/plugin4shell","name":"Plugin4Shell — Zero Click RCE Vulnerability found in top 4 most popular coding agents (AIR)","@type":"CreativeWork"}],"headline":"Plugin4Shell: the zero-click RCE that proves SHA-pinning was never a guarantee","keywords":"AI security, coding agents, supply chain, Claude Code, vulnerability, DevSecOps","publisher":{"url":"https://twarx.com","logo":{"url":"https://twarx.com/og-image.png","@type":"ImageObject"},"name":"Twarx","@type":"Organization","legalName":"Twarx Ventures FZ-LLC"},"wordCount":2047,"inLanguage":"en","description":"AIR's Plugin4Shell bypasses plugin SHA-pinning in four major coding agents, giving zero-click RCE. Claude Code and Codex are patched; Copilot and Gemini CLI are not. What to audit today.","dateModified":"2026-09-21T10:52:57.638Z","datePublished":"2026-09-21T10:52:57.638Z","mainEntityOfPage":{"@id":"https://twarx.com/research/plugin4shell-coding-agent-plugin-rce","@type":"WebPage"}}],"citations":[{"url":"https://www.helpnetsecurity.com/2026/09/18/plugin4shell-ai-coding-agents-vulnerability/","title":"Zero-click RCE vulnerability hit four major AI coding agents, two remain unpatched — Help Net Security"},{"url":"https://www.air.security/blog-posts/plugin4shell","title":"Plugin4Shell — Zero Click RCE Vulnerability found in top 4 most popular coding agents (AIR)"}],"read_time_minutes":9,"word_count":2047,"status":"published","published_at":"2026-09-21T10:52:58.894+00:00","scheduled_for":null,"views":0,"batch_id":"news-2026-09-21","created_at":"2026-09-21T10:52:58.94317+00:00","updated_at":"2026-09-21T11:26:39.372912+00:00","authors":{"bio":"Rushil Shah is the founder of Twarx and an AI systems builder who has spent years designing autonomous workflows, multi-agent architectures, and AI-powered business tools. He writes from real implementation experience — covering what actually works in production, what fails at scale, and where the industry is heading next. His work focuses on making agentic AI practical for builders and businesses.","name":"Rushil Shah","title":"AI Systems Builder & Founder, Twarx","expertise":["Agentic AI","Multi-Agent Systems","AI Workflow Automation","n8n","LangGraph","AI Business Tools"],"avatar_url":"https://i.ibb.co/kgffhX2j/Chat-GPT-Image-Jun-8-2026-01-34-11-PM.png","linkedin_url":"https://www.linkedin.com/in/rushil-shahh"},"categories":{"name":"Latest News","slug":"latest-news","color":"#6366F1"},"post_images":[]},"related":[{"id":"74034c3a-2882-4529-87a7-1d96d438329c","title":"California's AI 'Kill Switch' Order Is a Reporting Change in Disguise — Here's What Breaks for Agent Teams","slug":"california-ai-kill-switch-executive-order-n-9-26-what-changes","excerpt":"Governor Newsom's September 18 executive order gets headlines for an 'AI kill switch.' The order doesn't create one — it orders a feasibility report due November 16. The clause that will actually hit your vendor contracts is item (d): expanding the definition of a reportable critical safety incident to cover loss-of-control events like the Hugging Face intrusion. That definition change propagates downstream into enterprise AI policy long before any switch gets built.","featured_image_url":"https://v3b.fal.media/files/b/0aab4ed6/6tdS4h00im31lJhgKEi-U.jpg","is_featured":false,"is_ai_generated":true,"read_time_minutes":9,"word_count":1947,"views":0,"published_at":"2026-09-21T10:58:28.54+00:00","tags":["AI regulation","California SB 53","AI governance","agentic AI","AI safety","enterprise AI","incident response","compliance"],"primary_keyword":"Newsom executive order advances California AI 'kill switch' ","category_name":"Latest News","category_slug":"latest-news","category_color":"#6366F1","author_name":"Rushil Shah","author_title":"AI Systems Builder & Founder, Twarx","author_avatar":"https://i.ibb.co/kgffhX2j/Chat-GPT-Image-Jun-8-2026-01-34-11-PM.png"},{"id":"f15ad57b-6054-4a20-89e0-74741fdf79c3","title":"A Three-Person Team Used Claude Opus 5 to Reach OpenAI's Internal Monorepo — and the Real Lesson Isn't the Image Bug","slug":"hacktron-opus-5-openai-monorepo-agent-security","excerpt":"Three researchers turned a forum image upload into a pull request in OpenAI's internal monorepo in under 72 hours. Opus 4.8 couldn't finish the exploit; Opus 5 did, hours after release. The uncomfortable part isn't the memory bug — it's that agent connectors turned one forum compromise into repo access, and nobody detected it.","featured_image_url":"https://v3b.fal.media/files/b/0aab4ed6/IAeVSfdZdIEf0t0uD1DYQ.jpg","is_featured":false,"is_ai_generated":true,"read_time_minutes":8,"word_count":1908,"views":0,"published_at":"2026-09-21T10:55:21.164+00:00","tags":["AI security","agent deployment","OpenAI","Anthropic","vulnerability disclosure","supply chain security","SSO","red teaming"],"primary_keyword":"Hacktron chains OpenAI vulnerabilities with Claude Opus 5 to","category_name":"Latest News","category_slug":"latest-news","category_color":"#6366F1","author_name":"Rushil Shah","author_title":"AI Systems Builder & Founder, Twarx","author_avatar":"https://i.ibb.co/kgffhX2j/Chat-GPT-Image-Jun-8-2026-01-34-11-PM.png"}]}