Vulnerability Details CVE-2024-52308
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.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.004
EPSS Ranking 61.5%
CVSS Severity
CVSS v3 Score 8.0
Products affected by CVE-2024-52308
-
-
cpe:2.3:a:github:cli:0.10.0
-
cpe:2.3:a:github:cli:0.10.1
-
cpe:2.3:a:github:cli:0.11.0
-
cpe:2.3:a:github:cli:0.11.1
-
cpe:2.3:a:github:cli:0.12.0
-
cpe:2.3:a:github:cli:0.4.0
-
cpe:2.3:a:github:cli:0.5.0
-
cpe:2.3:a:github:cli:0.5.1
-
cpe:2.3:a:github:cli:0.5.2
-
cpe:2.3:a:github:cli:0.5.3
-
cpe:2.3:a:github:cli:0.5.4
-
cpe:2.3:a:github:cli:0.5.5
-
cpe:2.3:a:github:cli:0.5.6
-
cpe:2.3:a:github:cli:0.5.7
-
cpe:2.3:a:github:cli:0.6.0
-
cpe:2.3:a:github:cli:0.6.1
-
cpe:2.3:a:github:cli:0.6.2
-
cpe:2.3:a:github:cli:0.6.3
-
cpe:2.3:a:github:cli:0.6.4
-
cpe:2.3:a:github:cli:0.7.0
-
cpe:2.3:a:github:cli:0.8.0
-
cpe:2.3:a:github:cli:0.9.0
-
cpe:2.3:a:github:cli:1.0.0
-
cpe:2.3:a:github:cli:1.1.0
-
cpe:2.3:a:github:cli:1.10.0
-
cpe:2.3:a:github:cli:1.10.1
-
cpe:2.3:a:github:cli:1.10.2
-
cpe:2.3:a:github:cli:1.10.3
-
cpe:2.3:a:github:cli:1.11.0
-
cpe:2.3:a:github:cli:1.12.0
-
cpe:2.3:a:github:cli:1.12.1
-
cpe:2.3:a:github:cli:1.13.0
-
cpe:2.3:a:github:cli:1.13.1
-
cpe:2.3:a:github:cli:1.14.0
-
cpe:2.3:a:github:cli:1.2.0
-
cpe:2.3:a:github:cli:1.2.1
-
cpe:2.3:a:github:cli:1.3.0
-
cpe:2.3:a:github:cli:1.3.1
-
cpe:2.3:a:github:cli:1.4.0
-
cpe:2.3:a:github:cli:1.5.0
-
cpe:2.3:a:github:cli:1.6.0
-
cpe:2.3:a:github:cli:1.6.1
-
cpe:2.3:a:github:cli:1.6.2
-
cpe:2.3:a:github:cli:1.7.0
-
cpe:2.3:a:github:cli:1.8.0
-
cpe:2.3:a:github:cli:1.8.1
-
cpe:2.3:a:github:cli:1.9.0
-
cpe:2.3:a:github:cli:1.9.1
-
cpe:2.3:a:github:cli:1.9.2
-
cpe:2.3:a:github:cli:2.0.0
-
cpe:2.3:a:github:cli:2.1.0
-
cpe:2.3:a:github:cli:2.10.0
-
cpe:2.3:a:github:cli:2.10.1
-
cpe:2.3:a:github:cli:2.11.0
-
cpe:2.3:a:github:cli:2.11.1
-
cpe:2.3:a:github:cli:2.11.2
-
cpe:2.3:a:github:cli:2.11.3
-
cpe:2.3:a:github:cli:2.12.0
-
cpe:2.3:a:github:cli:2.12.1
-
cpe:2.3:a:github:cli:2.13.0
-
cpe:2.3:a:github:cli:2.14.0
-
cpe:2.3:a:github:cli:2.14.1
-
cpe:2.3:a:github:cli:2.14.2
-
cpe:2.3:a:github:cli:2.14.3
-
cpe:2.3:a:github:cli:2.14.4
-
cpe:2.3:a:github:cli:2.14.5
-
cpe:2.3:a:github:cli:2.14.6
-
cpe:2.3:a:github:cli:2.14.7
-
cpe:2.3:a:github:cli:2.15.0
-
cpe:2.3:a:github:cli:2.16.0
-
cpe:2.3:a:github:cli:2.16.1
-
cpe:2.3:a:github:cli:2.17.0
-
cpe:2.3:a:github:cli:2.18.0
-
cpe:2.3:a:github:cli:2.18.1
-
cpe:2.3:a:github:cli:2.19.0
-
cpe:2.3:a:github:cli:2.2.0
-
cpe:2.3:a:github:cli:2.20.0
-
cpe:2.3:a:github:cli:2.20.1
-
cpe:2.3:a:github:cli:2.20.2
-
cpe:2.3:a:github:cli:2.21.0
-
cpe:2.3:a:github:cli:2.21.1
-
cpe:2.3:a:github:cli:2.21.2
-
cpe:2.3:a:github:cli:2.22.0
-
cpe:2.3:a:github:cli:2.22.1
-
cpe:2.3:a:github:cli:2.23.0
-
cpe:2.3:a:github:cli:2.24.0
-
cpe:2.3:a:github:cli:2.24.1
-
cpe:2.3:a:github:cli:2.24.2
-
cpe:2.3:a:github:cli:2.24.3
-
cpe:2.3:a:github:cli:2.25.0
-
cpe:2.3:a:github:cli:2.25.1
-
cpe:2.3:a:github:cli:2.26.0
-
cpe:2.3:a:github:cli:2.26.1
-
cpe:2.3:a:github:cli:2.27.0
-
cpe:2.3:a:github:cli:2.28.0
-
cpe:2.3:a:github:cli:2.29.0
-
cpe:2.3:a:github:cli:2.3.0
-
cpe:2.3:a:github:cli:2.30.0
-
cpe:2.3:a:github:cli:2.31.0
-
cpe:2.3:a:github:cli:2.32.0
-
cpe:2.3:a:github:cli:2.32.1
-
cpe:2.3:a:github:cli:2.33.0
-
cpe:2.3:a:github:cli:2.34.0
-
cpe:2.3:a:github:cli:2.35.0
-
cpe:2.3:a:github:cli:2.36.0
-
cpe:2.3:a:github:cli:2.37.0
-
cpe:2.3:a:github:cli:2.38.0
-
cpe:2.3:a:github:cli:2.39.0
-
cpe:2.3:a:github:cli:2.39.1
-
cpe:2.3:a:github:cli:2.39.2
-
cpe:2.3:a:github:cli:2.4.0
-
cpe:2.3:a:github:cli:2.40.0
-
cpe:2.3:a:github:cli:2.40.1
-
cpe:2.3:a:github:cli:2.41.0
-
cpe:2.3:a:github:cli:2.42.0
-
cpe:2.3:a:github:cli:2.42.1
-
cpe:2.3:a:github:cli:2.43.0
-
cpe:2.3:a:github:cli:2.43.1
-
cpe:2.3:a:github:cli:2.44.0
-
cpe:2.3:a:github:cli:2.44.1
-
cpe:2.3:a:github:cli:2.45.0
-
cpe:2.3:a:github:cli:2.46.0
-
cpe:2.3:a:github:cli:2.47.0
-
cpe:2.3:a:github:cli:2.48.0
-
cpe:2.3:a:github:cli:2.49.0
-
cpe:2.3:a:github:cli:2.49.1
-
cpe:2.3:a:github:cli:2.49.2
-
cpe:2.3:a:github:cli:2.5.0
-
cpe:2.3:a:github:cli:2.5.1
-
cpe:2.3:a:github:cli:2.5.2
-
cpe:2.3:a:github:cli:2.50.0
-
cpe:2.3:a:github:cli:2.51.0
-
cpe:2.3:a:github:cli:2.52.0
-
cpe:2.3:a:github:cli:2.53.0
-
cpe:2.3:a:github:cli:2.54.0
-
cpe:2.3:a:github:cli:2.55.0
-
cpe:2.3:a:github:cli:2.56.0
-
cpe:2.3:a:github:cli:2.57.0
-
cpe:2.3:a:github:cli:2.58.0
-
cpe:2.3:a:github:cli:2.59.0
-
cpe:2.3:a:github:cli:2.6.0
-
cpe:2.3:a:github:cli:2.60.0
-
cpe:2.3:a:github:cli:2.60.1
-
cpe:2.3:a:github:cli:2.61.0
-
cpe:2.3:a:github:cli:2.7.0
-
cpe:2.3:a:github:cli:2.8.0
-
cpe:2.3:a:github:cli:2.9.0