Description
The GitHub CLI version 2.6.1 and earlier are vulnerable to remote code execution through a malicious codespace SSH server when using `gh codespace ssh` or `gh codespace logs` commands. This has been patched in the cli v2.62.0.
Developers connect to remote codespaces through an SSH server running within the devcontainer, which is generally provided through the [default devcontainer image]( https://docs.github.com/en/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-... https://docs.github.com/en/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers#using-the-default-dev-container-configuration) . GitHub CLI [retrieves SSH connection details]( https://github.com/cli/cli/blob/30066b0042d0c5928d959e288144300cb28196c9/internal/codespaces/rpc/inv... https://github.com/cli/cli/blob/30066b0042d0c5928d959e288144300cb28196c9/internal/codespaces/rpc/invoker.go#L230-L244 ), such as remote username, which is used in [executing `ssh` commands]( https://github.com/cli/cli/blob/e356c69a6f0125cfaac782c35acf77314f18908d/pkg/cmd/codespace/ssh.go#L2... https://github.com/cli/cli/blob/e356c69a6f0125cfaac782c35acf77314f18908d/pkg/cmd/codespace/ssh.go#L263 ) for `gh codespace ssh` or `gh codespace logs` commands.
This exploit occurs when a malicious third-party devcontainer contains a modified SSH server that injects `ssh` arguments within the SSH connection details. `gh codespace ssh` and `gh codespace logs` commands could execute arbitrary code on the user's workstation if the remote username contains something like `-oProxyCommand="echo hacked" #`. The `-oProxyCommand` flag causes `ssh` to execute the provided command while `#` shell comment causes any other `ssh` arguments to be ignored.
In `2.62.0`, the remote username information is being validated before being used.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| cli | cli | <= 2.61.0 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 13 | gh | 2.46.0-2 | — |
| Debian 12 | gh | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro 24.04 LTS | gh | 2.45.0-1ubuntu0.2+esm1 | USN-7130-1 |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SUSE Package Hub 15 SP6 | gh | 2.65.0-bp156.2.17.1 | openSUSE-SU-2025:0021-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Tumbleweed | gh | 2.62.0-1.1 | openSUSE-SU-2024:14509-1 |
| openSUSE Tumbleweed | govulncheck-vulndb | 0.0.20241119T173509-1.1 | openSUSE-SU-2024:14513-1 |
| openSUSE Leap 16.0 | gh | 2.96.0-bp160.1.1 | openSUSE-SU-2026:21310-1 |
| openSUSE Leap 15.6 | gh | 2.65.0-bp156.2.17.1 | openSUSE-SU-2025:0021-1 |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | gh | 2.62.0-1 | — |
Wolfi
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Wolfi rolling | gh | 2.62.0-r0 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Go | github.com/cli/cli | < 2.62.0 | 2.62.0 | GHSA-p2h2-3vg9-4p87 |
| Go | github.com/cli/cli | all versions | — | GO-2024-3269 |
| Go | github.com/cli/cli/v2 | < 2.62.0 | 2.62.0 | GHSA-p2h2-3vg9-4p87 |
Advisories 6
- openSUSE-SU-2026:21310-1 Security update for gh SUSE / openSUSE Security Updates · Jul 13, 2026
- USN-7130-1 gh vulnerability Ubuntu Security Notices (USN) · Apr 27, 2026
- openSUSE-SU-2024:14513-1 govulncheck-vulndb-0.0.20241119T173509-1.1 on GA media SUSE / openSUSE Security Updates · Feb 4, 2026
- openSUSE-SU-2024:14509-1 gh-2.62.0-1.1 on GA media SUSE / openSUSE Security Updates · Feb 4, 2026
- openSUSE-SU-2025:0021-1 Security update for gh SUSE / openSUSE Security Updates · Feb 4, 2026
- NCSC-2024-0454 Kwetsbaarheid verholpen in GitHub CLI NCSC-NL (Netherlands) · Nov 19, 2024