Vulnerabilidad en gitoxide (CVE-2024-40644)
Fecha de publicación:
18/07/2024
gitoxide Una implementación Rust pura idiomática, sencilla, rápida y segura de Git. Se puede engañar a `gix-path` para que ejecute otro `git.exe` colocado en una ubicación que no es de confianza mediante una cuenta de usuario limitada en sistemas Windows. Windows permite cuentas de usuario limitadas sin privilegios administrativos para crear nuevos directorios en la raíz de la unidad del sistema. Mientras que `gix-path` primero busca `git` usando una búsqueda `PATH`, en la versión 0.10.8 también tiene una estrategia alternativa en Windows para verificar dos rutas codificadas destinadas a ser de 64 bits y 32 bits. Directorios de archivos de programa. Las funciones existentes, así como la función `exe_invocation` recientemente introducida, se actualizaron para hacer uso de estas ubicaciones alternativas. Esto hace que las funciones en `gix_path::env` ejecuten directamente `git.exe` en esas ubicaciones, así como que devuelvan su ruta o cualquier configuración que informe a las personas que llaman y dependen de ella. Aunque técnicamente son posibles configuraciones inusuales donde la unidad del sistema no es `C:`, o incluso donde los directorios de Archivos de programa tienen nombres no predeterminados, el problema principal surge en un sistema Windows de 32 bits. Un sistema de este tipo no tiene el directorio `C:\Program Files (x86)`. Por lo tanto, un usuario limitado en un sistema Windows de 32 bits puede crear el directorio `C:\Program Files (x86)` y llenarlo con contenidos arbitrarios. Una vez que se ha colocado una carga útil en la segunda de las dos rutas codificadas de esta manera, otras cuentas de usuario, incluidos los administradores, la ejecutarán si ejecutan una aplicación que usa `gix-path` y no tienen `git` en un directorio `PATH`. (Aunque encontrar `git` en una búsqueda `PATH` previene la explotación, simplemente tenerlo instalado en la ubicación predeterminada en el directorio real `C:\Program Files` no lo hace. Esto se debe a que `mingw64` de la primera ruta codificada componente asume una instalación de 64 bits). Sólo Windows se ve afectado. La explotación es poco probable excepto en un sistema de 32 bits. En particular, ejecutar una versión de 32 bits en un sistema de 64 bits no es un factor de riesgo. Además, el atacante debe tener una cuenta de usuario en el sistema, aunque puede ser una cuenta relativamente sin privilegios. Dicho usuario puede realizar una escalada de privilegios y ejecutar código como otro usuario, aunque puede resultar difícil hacerlo de manera confiable porque la cuenta de usuario objetivo debe ejecutar una aplicación o servicio que use `gix-path` y no debe tener `git` en su `RUTA`. La principal configuración explotable es aquella en la que se instaló Git para Windows pero no se agregó a "PATH". Esta es una de las opciones de su instalador, aunque no es la opción predeterminada. Alternativamente, un programa afectado que desinfecte su `PATH` para eliminar directorios aparentemente no esenciales podría permitir la explotación. Pero en su mayor `PATH`, si el usuario objetivo ha configurado una `PATH` en la que se puede encontrar el "git.exe" real, entonces esto no se puede explotar. Este problema se solucionó en la versión 0.10.9 y se recomienda a todos los usuarios que actualicen. No se conocen workarounds para esta vulnerabilidad.
Gravedad CVSS v3.1: MEDIA
Última modificación:
19/07/2024