Skip to content
Heist/ feed
Back to feed
HighFix available

Claude Code: Plugin Hash Pin Bypass Allows Bypass of Hash Pinning

Type: advisorySources: OSV

The plugin install flow in Claude Code and Claude Desktop checked out a marketplace's pinned commit SHA using `git checkout` without verifying that the resulting HEAD matched the pinned SHA. An attacker controlling a plugin's upstream repository could create a branch named identically to the pinned 40-character SHA, causing the checkout to silently resolve to the attacker's branch tip instead of the reviewed commit, resulting in attacker-controlled code being installed bypassing the pinned hash. Exploitation required a user to install a malicious plugin, pin to a safe hash, and for the plugin source to be hosted on a git host that permitted SHA-shaped branch names. Users on standard Claude Code auto-update have received this fix already. Users performing manual updates are advised to update to the latest version. Thank you to Or Nevo Michrowski of Air Security for reporting this issue.

Products
@anthropic-ai/claude-code
Affected versions
Not specified
Fixed versions
2.1.179
CVEs
CVE-2026-86063
Confirmed fixed CVEs
Not specified
Updated in this feed
30 Oct 2026, 19:14 UTC · Revision 1

Source evidence

Claude Code: Plugin Hash Pin Bypass Allows Bypass of Hash Pinning

core-osv · Original source

Published 15 Oct 2026, 20:22 UTC

The plugin install flow in Claude Code and Claude Desktop checked out a marketplace's pinned commit SHA using `git checkout` without verifying that the resulting HEAD matched the pinned SHA. An attacker controlling a plugin's upstream repository could create a branch named identically to the pinned 40-character SHA, causing the checkout to silently resolve to the attacker's branch tip instead of the reviewed commit, resulting in attacker-controlled code being installed bypassing the pinned hash. Exploitation required a user to install a malicious plugin, pin to a safe hash, and for the plugin source to be hosted on a git host that permitted SHA-shaped branch names. Users on standard Claude Code auto-update have received this fix already. Users performing manual updates are advised to update to the latest version. Thank you to Or Nevo Michrowski of Air Security for reporting this issue.

osv:GHSA-pq7j-f95f-qfcv

@anthropic-ai/claude-code

Fixed versions: 2.1.179

Complete source record
{
  "id": "ed83716631d64b446eeffd01f76ca9f05697cac31b28db263a50805eee92d766",
  "url": "https://osv.dev/vulnerability/GHSA-pq7j-f95f-qfcv",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Claude Code: Plugin Hash Pin Bypass Allows Bypass of Hash Pinning",
    "summary": "The plugin install flow in Claude Code and Claude Desktop checked out a marketplace's pinned commit SHA using `git checkout` without verifying that the resulting HEAD matched the pinned SHA. An attacker controlling a plugin's upstream repository could create a branch named identically to the pinned 40-character SHA, causing the checkout to silently resolve to the attacker's branch tip instead of the reviewed commit, resulting in attacker-controlled code being installed bypassing the pinned hash. Exploitation required a user to install a malicious plugin, pin to a safe hash, and for the plugin source to be hosted on a git host that permitted SHA-shaped branch names. Users on standard Claude Code auto-update have received this fix already. Users performing manual updates are advised to update to the latest version. Thank you to Or Nevo Michrowski of Air Security for reporting this issue.",
    "evidence": "osv:GHSA-pq7j-f95f-qfcv",
    "products": [
      {
        "name": {
          "value": "@anthropic-ai/claude-code",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "2.1.179",
            "evidence": "/affected/0/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "GHSA-pq7j-f95f-qfcv",
      "aliases": [
        "CVE-2026-86063",
        "GHSA-pq7j-f95f-qfcv"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "SEMVER",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "2.1.179"
                }
              ]
            }
          ],
          "package": {
            "name": "@anthropic-ai/claude-code",
            "purl": "pkg:npm/%40anthropic-ai/claude-code",
            "ecosystem": "npm"
          },
          "database_specific": {
            "source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-pq7j-f95f-qfcv/GHSA-pq7j-f95f-qfcv.json"
          }
        }
      ],
      "modified": "2026-10-15T20:30:08.558907946Z",
      "provider": "osv",
      "references": [
        "https://github.com/anthropics/claude-code/security/advisories/GHSA-pq7j-f95f-qfcv",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-86063",
        "https://github.com/anthropics/claude-code",
        "https://github.com/anthropics/claude-code/releases/tag/v2.1.179"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-494",
          "CWE-829"
        ],
        "severity": "HIGH",
        "github_reviewed": true,
        "nvd_published_at": "2026-10-13T19:21:21Z",
        "github_reviewed_at": "2026-10-15T20:22:07Z"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-86063",
        "evidence": "/aliases"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/database_specific/severity"
  },
  "source_id": "core-osv",
  "document_id": 336058,
  "published_at": "2026-10-15T20:22:07+00:00"
}