Skip to main content

GitHub CLI CVE-2026-64655

| EUVDEUVD-2026-54222 LOW
Incorrect Regular Expression (CWE-185)
2026-08-06 security-advisories@github.com GHSA-mm27-mwq9-fr5g
2.1
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Register lookalike GitHub repo with dot-as-wildcard name
  2. Delivery
    Produce valid Sigstore attestations from lookalike workflow
  3. Exploit
    Target victim running gh attestation verify on unpatched CLI
  4. Execution
    Unescaped dot in SAN regex matches lookalike SAN
  5. Persist
    Attestation verification returns success for attacker artifact
  6. Impact
    CI/CD policy gate accepts attacker-signed artifact as trusted

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Incorrect input validation
Exploitation Conditions

Exploitation requires three concurrent conditions: (1) the attacker must successfully register a GitHub organization or repository whose name contains a dot at a position that pattern-matches the legitimate signer's name when the dot is treated as a regex wildcard (e.g., registering myXorg/my.repo to match a matcher for myXorg/my-repo); (2) the attacker must obtain valid Sigstore attestations signed from that lookalike repository, which requires it to function as a real GitHub Actions workflow environment; (3) the victim - a developer or an automated CI/CD pipeline - must invoke gh attestation verify with the --signer-repo or --signer-workflow flag specifying the legitimate signer, using a GitHub CLI version prior to 2.97.0. Limiting factors: GitHub's own namespace registration rules may block registration of certain lookalike names; the attacker cannot reuse an existing organization name and must find a dot-substitution that GitHub permits; and the victim system must be running the unpatched CLI.

Impact

The CVSS 4.0 base score of 2.1 accurately reflects the constrained real-world exploitability: AT:P (specific attack conditions present) and UI:A (active victim interaction required) together mean an attacker must pre-register a plausible lookalike repository on GitHub and have the victim actively invoke attestation verification against it. The only downstream impact is SI:L - a low integrity effect on the subsequent system (the CI/CD pipeline or policy gate relying on the verification result). Despite the low numeric score, the qualitative risk can be disproportionately high for organizations that use gh attestation verify as a hard trust gate in automated pipelines: a successful bypass could allow an attacker-signed artifact to pass as trusted. The risk is bounded by GitHub's own name-registration controls, which may or may not permit the specific lookalike string an attacker needs. No EPSS data was provided; no KEV listing exists. This is a real but targeted risk, not a broadly opportunistic one.

Exploit ScenarioDerived

An attacker identifies a widely trusted signing workflow such as github/artifact-attestations-workflows/.github/workflows/attest.yml, then registers a GitHub organization named githubXartifactXattestations-workflows or, more precisely, a repository under an org where a dot substitutes for a hyphen (e.g., github/artifact.attestations-workflows). The attacker generates valid Sigstore attestations from this lookalike repository and distributes a malicious artifact alongside those attestations. When a CI/CD pipeline running an unpatched GitHub CLI executes gh attestation verify --signer-repo github/artifact-attestations-workflows, the unescaped dot in the lookalike's SAN matches the wildcard, the verification passes, and the pipeline consumes the attacker-controlled artifact as if it were trusted. No public proof-of-concept code has been identified at time of analysis.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 06, 2026

Sigstore attestation verification in GitHub CLI prior to 2.97.0 can be defeated when an attacker registers a lookalike repository whose name contains dot characters that function as regex wildcards - for example, github/artifact.attestations-workflows matching a matcher intended solely for github/artifact-attestations-workflows. The gh attestation verify command in pkg/cmd/attestation/verify/policy.go constructed Certificate Subject Alternative Name (SAN) matchers by interpolating --signer-repo and --signer-workflow flag values directly into regex patterns without calling regexp.QuoteMeta(), allowing any dot or other metacharacter in a GitHub-permitted name to act as a wildcard. No public exploit has been identified at time of analysis; the CVSS 4.0 AT:P designator confirms exploitation requires the attacker to first position a valid lookalike repository with legitimate Sigstore attestations, making this a targeted rather than opportunistic threat.

RemediationAI

Upgrade GitHub CLI to version 2.97.0 or later, which is the vendor-confirmed patched release available at https://github.com/cli/cli/releases/tag/v2.97.0. The fix is a one-line change per affected code path: wrapping the URL string in regexp.QuoteMeta() before regex pattern construction, ensuring dots and other metacharacters are treated as literals. No documented workaround exists short of upgrading; however, organizations relying on gh attestation verify as a CI/CD trust gate should audit their --signer-repo and --signer-workflow values to determine whether any registered lookalike repository names exist on GitHub that could satisfy the pre-fix unescaped pattern, and treat any verification results from unpatched CLI versions as potentially untrusted until the upgrade is applied.

Affected VersionsENISA

cli < 2.97.0

Affected Packages

go github.com/cli/cli no fix
go github.com/cli/cli/v2 fix: 2.97.0
euvd cli fix: 2.97.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 3 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-185 (Incorrect Regular Expression): user-controlled strings were concatenated directly into Go regex patterns without sanitization. Specifically, expandToGitHubURL() used fmt.Sprintf("(?i)^%s/", url) and validateSignerWorkflow() used fmt.Sprintf("^https://%s", signerWorkflow), both of which treat the input as a regex literal when it is actually arbitrary user-supplied text. GitHub permits dots in organization names, repository names, and workflow path components, and a dot in a Go regex matches any character. The fix (commit 55dbb4dc6b7edb10b48e3d7fc5bccd32318d1b55) wraps all URL components in regexp.QuoteMeta() before pattern construction, converting dots and other metacharacters to their escaped equivalents. The affected component is the Sigstore-based supply chain verification flow in the official GitHub CLI (cli/cli), versions prior to 2.97.0 per EUVD-2026-54222.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (github) PRIMARY 2.1 LOW
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:N/SC:N/SI:L/SA:N
vuln.today AI 3.4 LOW

AC:H because attacker must pre-register a specific lookalike repo name; UI:R for victim's active invocation; S:C and I:L because integrity impact falls on the downstream pipeline, not the CLI process itself.

3.1 AV:N/AC:H/PR:N/UI:R/S:C/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:N/SC:N/SI:L/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
Active
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
Low
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Aug 06, 2026 - 23:03 EUVD

DescriptionCVE.org

GitHub CLI (gh) is GitHub’s official command line tool. Prior to 2.97.0, gh attestation verify  builds the certificate Subject Alternative Name matcher from the --signer-repo and --signer-workflow  flag values without escaping regex metacharacters, so a user-supplied repository or workflow name is treated as a regular expression rather than a literal string. Because GitHub permits characters such as  .  in organization, repository, and workflow path names and  .  is a regex wildcard, an attacker can register a lookalike name (for example github/artifact.attestations-workflows) that satisfies a matcher intended for a different trusted signer (github/artifact-attestations-workflows), bypassing the intended Sigstore attestation verification. Exploitation requires the attacker to create a plausible lookalike repository and produce valid attestations from it, which could undermine supply chain verification for CI/CD pipelines or policy gates that pin trust to a specific signing workflow. This issue is fixed in version 2.97.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 75% exploitable
Prevalence
Medium
widely adopted developer CLI, millions of GitHub users
Threat Intel
1
1 sources
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA MSRC GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

10
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +10
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy