
VMware Aria Operations < 4.18.5 y VMware Tools - Escalada de privilegios local
VMware Aria Operations < 4.18.5 y VMware Tools - Escalada de privilegios local
Por favor, lea el artículo listado en las referencias para obtener una explicación más completa y detallada de la vulnerabilidad.
En resumen
Un script de shell dentro de VMware Tools llamado get-versions.sh utiliza un patrón de expresión regular de coincidencia amplia (\S) para identificar procesos en ejecución con sockets de escucha. En los procesos que coinciden, ejecuta el proceso con la bandera de versión correspondiente (-v, --version, etc.) para recuperar la versión en ejecución del servicio.
Extracto de get-versions.sh (líneas 18-26):
get_version() {
PATTERN=$1
VERSION_OPTION=$2
for p in $space_separated_pids
do
COMMAND=$(get_command_line $p | grep -Eo "$PATTERN")
[ ! -z "$COMMAND" ] && echo VERSIONSTART "$p" "$("${COMMAND%%[[:space:]]*}" $VERSION_OPTION 2>&1)" VERSIONEND
done
}
Extracto de get-versions.sh (líneas 119-124):
get_version "/\S+/(httpd-prefork|httpd|httpd2-prefork)($|\s)" -v
get_version "/usr/(bin|sbin)/apache\S*" -v
get_version "/\S+/mysqld($|\s)" -V
get_version "\.?/\S*nginx($|\s)" -v
get_version "/\S+/srm/bin/vmware-dr($|\s)" --version
get_version "/\S+/dataserver($|\s)" -v
La línea superior /\S+/httpd($|\s) está diseñada para coincidir con la ruta de instalación adecuada, como /usr/bin/httpd. Sin embargo, si un usuario sin privilegios crea un script en /tmp/httpd, un directorio de escritura global, y ejecuta el proceso, siempre que tenga un socket de escucha (en cualquier interfaz, incluso localhost), será ejecutado en un contexto elevado por el script de VMware Tools, logrando una escalada de privilegios local. Esto podría permitir a un usuario malintencionado ejecutar una shell inversa, crear un usuario root o, en última instancia, cualquier acción elevada que elija.
Se ejecuta un script de golang para crear un socket de escucha. Cuando el script get-versions.sh coincide con la expresión regular de /tmp/[SERVICE], ejecutará el script en un contexto elevado. Cuando el script se ejecuta en un contexto elevado, en lugar de crear un socket de escucha, ejecutará un comando arbitrario (por ejemplo, /bin/bash -i), obteniendo la escalada de privilegios.
https://blog.nviso.eu/2025/09/29/you-name-it-vmware-elevates-it-cve-2025-41244/