Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister lookalike GitHub repo with dot-as-wildcard name
-
DeliveryProduce valid Sigstore attestations from lookalike workflow
-
ExploitTarget victim running gh attestation verify on unpatched CLI
-
ExecutionUnescaped dot in SAN regex matches lookalike SAN
-
PersistAttestation verification returns success for attacker artifact
-
ImpactCI/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 |
| 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 |
| 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 |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
1DescriptionCVE.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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-54222
GHSA-mm27-mwq9-fr5g
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB