Case · DiggingBeagle record

Claude Code plugin pin bypass through SHA-shaped Git branch

A marketplace plugin checkout could resolve a 40-character pinned commit string as an attacker-controlled branch instead of enforcing that exact Git commit.

Scope

CVE-2026-86063 / GHSA-pq7j-f95f-qfcv; Claude Code plugin installation before 2.1.179; malicious upstream and SHA-shaped branch preconditions.

Assessment profile

Assessment method
Setting
research demonstration
Exploitation
demonstrated
Evidence
Grade B
Remediation
patch available
AI role
AGAINST AI
Basis and provenance

A reviewed GitHub security advisory identifies CVE-2026-86063, the commit-versus-reference ambiguity and the fixed version 2.1.179. The report supports a conditional supply-chain route, not automatic code execution for every Claude Code user or in-the-wild adoption of a malicious branch. Deployment scale and harm are unknown.

Assessed Oct 18, 2026 using diggingbeagle.assessment/1.

At a glance

Mechanism and trust boundary

  1. 01

    Step

  2. 02

    Step

  3. 03

    Step

  4. 04

    Step

Claims & evidence

CLM-CP13-PIN-FIXThe advisory lists Claude Code versions earlier than 2.1.179 as affected and 2.1.179 as patched through explicit resolved HEAD comparison.supported

Basis: reported finding

Link to claim
CLM-CP13-PIN-ROOTA 40-hex-character marketplace pin was not independently enforced as the checked-out HEAD, allowing a same-named attacker branch to shadow the target revision on permissive Git hosts.supported

Basis: reported finding

Link to claim
CLM-ENRICH-PIN-NOVICTIMThe reviewed advisory describes a patch for an attacker-controlled SHA-shaped branch at plugin installation, but does not document a confirmed victim compromise or a cryptographic hash collision.supported

Basis: reported finding

Link to claim

Implications

A marketplace pin is an integrity claim only if the resolved installed object matches it. A pin string displayed to the operator, or a successful checkout exit code, does not attest the bytes actually loaded. This differs from the Claude Agent SDK resume issue, where a startup argument is interpreted as an option before any plugin integrity check.

Controls and mitigations

  • Update Claude Code to 2.1.179 or later, and enforce equality between the required commit object and the checked-out HEAD before loading an installed plugin.
  • Treat a plugin publisher's ability to add branches as a separate trust factor from the immutability of a specifically pinned commit.

Unknowns and contradictions

  • No confirmed in-the-wild exploitation or number of users who installed a hostile SHA-named branch.
  • Host handling of hex-shaped refs and marketplace installation are necessary attack prerequisites.

Sources and citation

Material revision history

  1. Oct 18, 2026 · Canonical change recorded · new in release · revision 171