Skip to content
OpenAdvisories
High · 8.0 CVE-2024-52308 EUVD-2024-3287GHSA-p2h2-3vg9-4p87GO-2024-3269

Connecting to a malicious Codespaces via GH CLI could allow command execution on the user's computer

Published Nov 14, 2024 · Updated Nov 15, 2024 · Assigned by GitHub_M

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

VendorProductAffectedFixed
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.

ReleasePackageFixed inAdvisory
Debian 13 gh 2.46.0-2 —
Debian 12 gh No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu Pro 24.04 LTS gh 2.45.0-1ubuntu0.2+esm1 USN-7130-1
ReleasePackageFixed inAdvisory
SUSE Package Hub 15 SP6 gh 2.65.0-bp156.2.17.1 openSUSE-SU-2025:0021-1
ReleasePackageFixed inAdvisory
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

ReleasePackageFixed inAdvisory
Azure Linux 3 gh 2.62.0-1 —

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling gh 2.62.0-r0 —

Affected packages

EcosystemPackageAffectedFixedRecord
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

References