Vulnerabilidad en gix-path (CVE-2024-45405)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
06/09/2024
Última modificación:
06/09/2024
Descripción
`gix-path` es un paquete del proyecto `gitoxide` (una implementación de `git` escrita en Rust) que se ocupa de rutas y sus conversiones. Antes de la versión 0.10.11, `gix-path` ejecuta `git` para encontrar la ruta de un archivo de configuración asociado con la instalación de `git`, pero resuelve incorrectamente las rutas que contienen caracteres inusuales o que no son ASCII, lo que en casos excepcionales permite que un atacante local inyecte una configuración que lleve a la ejecución del código. La versión 0.10.11 contiene un parche para el problema. En `gix_path::env`, la implementación subyacente de las funciones `installation_config` e `installation_config_prefix` llama a `git config -l --show-origin` para encontrar la ruta de un archivo que se tratará como perteneciente a la instalación de `git`. Las versiones afectadas de `gix-path` no pasan `-z`/`--null` para hacer que `git` informe las rutas literales. En cambio, para cubrir el caso ocasional en el que `git` genera una ruta entre comillas, intentan analizar la ruta quitando las comillas. El problema es que, cuando se entrecomilla una ruta, puede cambiar de manera sustancial más allá de la concatenación de comillas. Si no se revierten, estos cambios pueden dar como resultado otra ruta válida que no sea equivalente a la original. En un sistema de un solo usuario, no es posible explotar esto, a menos que `GIT_CONFIG_SYSTEM` y `GIT_CONFIG_GLOBAL` se hayan configurado con valores inusuales o Git se haya instalado de una manera inusual. Tal escenario no se espera. La explotación es poco probable incluso en un sistema multiusuario, aunque es plausible en algunas configuraciones o casos de uso poco comunes. En general, es más probable que la explotación tenga éxito si se espera que los usuarios instalen `git` ellos mismos, y es probable que lo hagan en ubicaciones predecibles; las ubicaciones donde está instalado `git`, ya sea debido a nombres de usuario en sus rutas o por cualquier otro motivo, contienen caracteres que `git` cita de forma predeterminada en las rutas, como letras que no están en inglés y letras acentuadas; se especifica un archivo de configuración personalizado de ámbito `system` con la variable de entorno `GIT_CONFIG_SYSTEM`, y su ruta está en una ubicación inusual o tiene componentes con nombres extraños; o un archivo de configuración de ámbito `system` está ausente, vacío o suprimido por medios distintos a `GIT_CONFIG_NOSYSTEM`. Actualmente, `gix-path` puede tratar un archivo de configuración de ámbito `global` como perteneciente a la instalación si no hay disponible un archivo de configuración de ámbito superior. Esto aumenta la probabilidad de explotación incluso en un sistema donde `git` está instalado en todo el sistema de forma normal. Sin embargo, se espera que la explotación sea muy difícil incluso bajo cualquier combinación de esos factores.
Impacto
Puntuación base 3.x
6.00
Gravedad 3.x
MEDIA



