CVE-2026-59831
GitHub CLI `gh codespace jupyter` could allow remote code execution when connecting to a malicious Codespace
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- Low
- User interaction
- Required
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
4.4
GitHub CLI `gh codespace jupyter` could allow remote code execution when connecting to a malicious Codespace
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.
- Record
CVE-2026-59831- CVSS 3.1
- 4.4 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-829
- Updated
- 2026-11-02
EUVDEUVD-2026-42741
4.4
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.
- Record
EUVD-2026-42741- CVSS 3.1
- 4.4 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
NVD
4.4
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.
- Record
CVE-2026-59831- CVSS 3.1
- 4.4 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-829
- Updated
- 2026-11-02
OSV
4.4
GitHub CLI `gh codespace jupyter` could allow remote code execution when connecting to a malicious Codespace
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.
- Record
CVE-2026-59831- CVSS 3.1
- 4.4 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-829
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-59831
4.4
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.
- Record
DEBIAN-CVE-2026-59831- CVSS 3.1
- 4.4 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-59831
4.4
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.
- Record
UBUNTU-CVE-2026-59831- CVSS 3.1
- 4.4 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVAZL-92328 No score
CVE-2026-59831 affecting package gh for versions less than 2.62.0-20
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.
- Record
AZL-92328- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:12163-1 No score
gh-2.102.0-1.1 on GA media
These are all security issues fixed in the gh-2.102.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:12163-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:22134-1 No score
Security update for gh
This update for gh fixes the following issues:
Changes in gh:
-
Update to version 2.102.0, fixing four security issues (GHSA-39wj-f2f4-978v, GHSA-4mq3-hpgx-9cx8, GHSA-qcwj-mr2r-2cx7, GHSA-wjmr-j3rp-mh2g):
- gh release/run/attestation download and repo read-file --output could write to an unintended file through symbolic links
- gh attestation verify compared --source-ref case-insensitively
- gh attestation verify matched --signer-workflow only by prefix
- gh skill search could inject options into gh skill install
- Copy auth codes to the clipboard by default (gh config set clipboard disabled to opt out)
- Remove the gh repo garden command and the multi-account migration
- Use API SSH URLs for repository clones
- Validate repository names during interactive creation
- Fix remote branch deletion on owner case mismatch
- Propagate the gh path to extensions
- Allow ghu_ tokens to attach files
- Allow gh repo set-default --unset without an argument
- Bump go-gh to 2.16.1, golang.org/x/crypto to 0.57.0, github.com/klauspost/compress to 1.20.1 and Go to 1.27.1
-
Update golang.org/x/net to 0.60.0 to fix excessive CPU consumption on repeated HTTP/2 initial window changes (CVE-2026-78669, bsc#1285291).
-
Require golang(API) >= 1.27 as upstream moved to Go 1.27.
-
Not affected, vendored dependencies are above the fixed version:
- CVE-2026-84445 (bsc#1278962): grpc is 1.83.2, fixed in 1.83.2
- CVE-2026-84304 (bsc#1279208), CVE-2026-84303 (bsc#1279310): grpc is 1.83.2, fixed in 1.83.1
- CVE-2026-41178 (bsc#1276707): otel/baggage is 1.44.0, fixed in 1.44.0
- CVE-2026-63209 (bsc#1283727): klauspost/compress is 1.20.1, contains the fix of 1.18.7
- CVE-2026-72924 (bsc#1276755): gh is above 2.98.0, the fixed version
- CVE-2026-59831 (bsc#1271215): gh is above 2.95.0, the last affected version
- Record
openSUSE-SU-2026:22134-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
ghAzure Linux:3 |
before 2.62.0-20 | 2.62.0-20 |
ghDebian:12 |
All versions, plus listed versions 2.23.0+dfsg1-12.24.3+dfsg1-12.27.0+dfsg1-12.30.0-12.30.0-2 Show 11 moreShow less2.35.0-12.40.1+dfsg1-12.42.1-12.43.1-12.44.1-12.44.1-22.45.0-12.46.0-12.46.0-22.46.0-32.46.0-4 |
None known |
ghDebian:13 |
All versions, plus listed versions 2.46.0-32.46.0-4 |
None known |
ghUbuntu:22.04:LTS |
All versions, plus listed versions 2.4.0+dfsg1-12.4.0+dfsg1-2 |
None known |
ghUbuntu:Pro:24.04:LTS |
All versions, plus listed versions 2.27.0+dfsg1-1build12.30.0-22.35.0-12.40.1+dfsg1-12.42.1-1 Show 13 moreShow less2.43.1-12.44.1-12.44.1-22.45.0-12.45.0-1build12.45.0-1ubuntu0.12.45.0-1ubuntu0.22.45.0-1ubuntu0.2+esm12.45.0-1ubuntu0.2+esm22.45.0-1ubuntu0.32.45.0-1ubuntu0.3+esm12.45.0-1ubuntu0.3+esm22.45.0-1ubuntu0.3+esm3 |
None known |
ghUbuntu:26.10 |
All versions, plus listed versions 2.46.0-4 |
None known |
ghUbuntu:Pro:26.04:LTS |
All versions, plus listed versions 2.46.0-32.46.0-42.46.0-4ubuntu0.26.04.1~esm1 |
None known |
ghopenSUSE:Tumbleweed From an advisory covering 7 CVEs |
before 2.102.0-1.1 | 2.102.0-1.1 |
ghopenSUSE:Leap 16.0 From an advisory covering 8 CVEs |
before 2.102.0-bp160.1.1 | 2.102.0-bp160.1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-59831 is a medium vulnerability (CVSS 4.4) in Cli, published July 9, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.33%, the 25th percentile. Fixed in gh 2.62.0-20.
References
github.com/cli/cli/security/advisories/GHSA-8cg3-r6g9-fpg2
github.com/cli/cli/commit/b300f2ec7ec9dc9addc39b2ad88c54097ded7ca0
github.com/cli/cli/releases/tag/v2.96.0
nvd.nist.gov/vuln/detail/CVE-2026-59831
github.com/CVEProject/cvelistV5/tree/main/cves/2026/59xxx/CVE-2026-59831.json
security-tracker.debian.org/tracker/CVE-2026-59831
Show 18 moreShow less
ubuntu.com/security/CVE-2026-59831
cve.org/CVERecord?id=CVE-2026-59831
suse.com/security/cve/CVE-2026-41178
suse.com/security/cve/CVE-2026-59831
suse.com/security/cve/CVE-2026-63209
suse.com/security/cve/CVE-2026-72924
suse.com/security/cve/CVE-2026-78669
suse.com/security/cve/CVE-2026-84304
suse.com/security/cve/CVE-2026-84445
bugzilla.suse.com/1271215
bugzilla.suse.com/1276707
bugzilla.suse.com/1276755
bugzilla.suse.com/1278962
bugzilla.suse.com/1279208
bugzilla.suse.com/1279310
bugzilla.suse.com/1283727
bugzilla.suse.com/1285291
suse.com/security/cve/CVE-2026-84303