Vulnerabilidad en GitHub (CVE-2024-52308)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-77
Neutralización incorrecta de elementos especiales usados en un comando (Inyección de comando)
Fecha de publicación:
14/11/2024
Última modificación:
20/11/2024
Descripción
La versión 2.6.1 y anteriores de la CLI de GitHub son vulnerables a la ejecución remota de código a través de un servidor SSH de codespace malicioso cuando se usan los comandos `gh codespace ssh` o `gh codespace logs`. Esto se ha corregido en la CLI v2.62.0. Los desarrolladores se conectan a codespaces remotos a través de un servidor SSH que se ejecuta dentro del devcontainer, que generalmente se proporciona a través de la [imagen predeterminada de devcontainer]( 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 [recupera detalles de conexión SSH]( 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 ), como el nombre de usuario remoto, que se utiliza al [ejecutar comandos `ssh`]( 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 ) para los comandos `gh codespace ssh` o `gh codespace logs`. Esta vulnerabilidad se produce cuando un contenedor de desarrollo malintencionado de terceros contiene un servidor SSH modificado que inyecta argumentos `ssh` dentro de los detalles de la conexión SSH. Los comandos `gh codespace ssh` y `gh codespace logs` podrían ejecutar código arbitrario en la estación de trabajo del usuario si el nombre de usuario remoto contiene algo como `-oProxyCommand="echo hacked" #`. El indicador `-oProxyCommand` hace que `ssh` ejecute el comando proporcionado mientras que el comentario de shell `#` hace que se ignoren todos los demás argumentos de `ssh`. En `2.62.0`, la información del nombre de usuario remoto se valida antes de usarse.
Impacto
Puntuación base 3.x
8.00
Gravedad 3.x
ALTA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:github:cli:*:*:*:*:*:*:*:* | 2.62.0 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página