{"id":"EUVD-2026-54222","revision":"c1f9844eeeea426295b5b12a72222d1d","records":[{"revision":"c1f9844eeeea426295b5b12a72222d1d","observedAt":"2026-11-01T11:29:39.555+00:00","statement":{"source":"euvd","id":"EUVD-2026-54222","aliases":["CVE-2026-64655","GHSA-mm27-mwq9-fr5g"],"title":"GitHub CLI (gh) is GitHub’s official command line tool. Prior to 2.97.0, gh attestation verify\u00A0 builds the certificate Subject Alternative Name matcher from the --signer-repo and --signer-workflow\u00A0 flag values without escaping regex metacha…","description":"GitHub CLI (gh) is GitHub’s official command line tool. Prior to 2.97.0, gh attestation verify\u00A0 builds the certificate Subject Alternative Name matcher from the --signer-repo and --signer-workflow\u00A0 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 \u00A0`.`\u00A0 in organization, repository, and workflow path names and \u00A0`.`\u00A0 is a regex wildcard, an attacker can register a lookalike name (for example\u00A0github/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.","state":0,"publishedAt":null,"modifiedAt":null,"affected":[],"metrics":[{"system":"EUVD CVSS 4.0","vector":"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","score":2.1,"severity":null}],"references":["https://github.com/cli/cli/security/advisories/GHSA-mm27-mwq9-fr5g","https://github.com/cli/cli/commit/55dbb4dc6b7edb10b48e3d7fc5bccd32318d1b55","https://github.com/cli/cli/releases/tag/v2.97.0"],"sourceUrl":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-54222","license":"ENISA EUVD · source terms and attribution apply","enrichment":{"sourceStatus":null,"weaknesses":[],"productCriteria":[],"sourceDates":{"datePublished":"Aug 6, 2026, 6:41:54 PM","dateUpdated":"Aug 8, 2026, 2:23:17 AM"},"relatedAdvisories":[{"id":"msrc_CVE-2026-64655","title":"GitHub CLI: Attestation Verification Bypass via Unescaped Regex Metacharacters in SAN Matching","vulnerabilityIds":["CVE-2026-64655"]},{"id":"openSUSE-SU-2026:21663-1","title":"Security update for gh","vulnerabilityIds":["CVE-2026-39821","CVE-2026-64652","CVE-2026-64653","CVE-2026-64654","CVE-2026-64655"]},{"id":"openSUSE-SU-2026:11530-1","title":"gh-2.97.0-1.1 on GA media","vulnerabilityIds":["CVE-2026-64652","CVE-2026-64653","CVE-2026-64654","CVE-2026-64655"]}],"note":"EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON."},"key":"euvd:EUVD-2026-54222","identifiers":["EUVD-2026-54222","CVE-2026-64655","GHSA-mm27-mwq9-fr5g"]},"retained":false,"historicalAffected":[]}],"coverage":[]}