#1144403 gh: CVE-2026-59831 CVE-2026-64652 CVE-2026-64653 CVE-2026-64654 CVE-2026-64655

Package:
src:gh
Source:
src:gh
Submitter:
Salvatore Bonaccorso
Date:
2026-08-14 15:41:03 UTC
Severity:
normal
Tags:
#1144403#5
Date:
2026-08-14 15:40:53 UTC
From:
To:
Hi,

The following vulnerabilities were published for gh.

CVE-2026-59831[0]:
| GitHub CLI (gh) is GitHub’s official command line tool. From 2.10.0
| through 2.95.0, connecting to a malicious Codespace with gh
| codespace jupyter can allow command execution because the command
| opens a JupyterLab URL supplied by a process inside the Codespace
| without validating that it is a loopback HTTP or HTTPS address,
| allowing a crafted vscode:// or vscode-insiders:// URL to be handed
| to VS Code. This issue is fixed in version 2.96.0.


CVE-2026-64652[1]:
| GitHub CLI (gh) is GitHub's official command line tool. Prior to
| version 2.97.0, gh auth status masked only the characters after the
| last underscore in certain fine-grained personal access tokens and
| GitHub App tokens. As a result, part of an affected token could
| appear in terminal or CI output that is captured or shared.
| Authenticated users are affected if they ran gh auth status (without
| the --show-token flag) with a token type whose format contains an
| underscore after the prefix. This includes fine-grained personal
| access tokens (github_pat_*) and GitHub App installation and user
| access tokens (ghs_*, ghu_*; for example, ghs_<APPID>_<JWT>), as
| well as the Actions GITHUB_TOKEN. Classic tokens such as gho_* and
| ghp_* have an underscore-free body and are not affected. This issue
| is fixed in version 2.97.0.


CVE-2026-64653[2]:
| GitHub CLI (gh) is GitHub’s official command line tool. Prior to
| 2.97.0, some HTTP request URLs interpolate variable path components
| without percent encoding, allowing URL path metacharacters in
| attacker-controlled repository or resource values to make gh address
| a different API endpoint or resource than the user intended. This
| issue is fixed in version 2.97.0.


CVE-2026-64654[3]:
| GitHub CLI (gh) is GitHub's official command line tool. Prior to
| version 2.97.0, multiple GitHub CLI commands printed externally
| controlled gist, API, pull request, release, codespace, skill, or
| agent-task content without neutralizing terminal escape sequences.
| An attacker who can influence that content can embed escape
| sequences that are interpreted by the terminal of a user who runs an
| affected command, with impact ranging from cosmetic manipulation of
| the title or on-screen content to, on some terminal emulators,
| command execution. This extends the same class of issue as
| CVE-2026-45803—which addressed only gh run view --log—to the other
| affected command paths. This issue is fixed in version 2.97.0.


CVE-2026-64655[4]:
| 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.


If you fix the vulnerabilities please also make sure to include the
CVE (Common Vulnerabilities & Exposures) ids in your changelog entry.

For further information see:

[0] https://security-tracker.debian.org/tracker/CVE-2026-59831
https://www.cve.org/CVERecord?id=CVE-2026-59831
[1] https://security-tracker.debian.org/tracker/CVE-2026-64652
https://www.cve.org/CVERecord?id=CVE-2026-64652
[2] https://security-tracker.debian.org/tracker/CVE-2026-64653
https://www.cve.org/CVERecord?id=CVE-2026-64653
[3] https://security-tracker.debian.org/tracker/CVE-2026-64654
https://www.cve.org/CVERecord?id=CVE-2026-64654
[4] https://security-tracker.debian.org/tracker/CVE-2026-64655
https://www.cve.org/CVERecord?id=CVE-2026-64655

Regards,
Salvatore