
VMware Aria Operations < 4.18.5 & VMware Tools - Élévation de privilèges locale
VMware Aria Operations < 4.18.5 et VMware Tools - Élévation de privilèges locale
Veuillez lire l'article listé dans les références pour obtenir une explication plus complète et détaillée de la vulnérabilité.
En résumé
Un script shell dans VMware Tools nommé get-versions.sh utilise un motif regex à correspondance large (\S) pour identifier les processus en cours d'exécution avec des sockets en écoute. Sur les processus correspondants, il exécute le processus avec le drapeau de version respectif (-v, --version, etc.) pour récupérer la version en cours d'exécution du service.
Extrait de get-versions.sh (lignes 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
}
Extrait de get-versions.sh (lignes 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 ligne supérieure /\S+/httpd($|\s) est conçue pour correspondre au chemin d'installation approprié, tel que /usr/bin/httpd. Cependant, si un utilisateur non privilégié crée un script dans /tmp/httpd, un répertoire globalement accessible en écriture, et exécute le processus, tant qu'il possède un socket en écoute (sur n'importe quelle interface - même localhost), il sera exécuté dans un contexte élevé par le script VMware Tools - réalisant ainsi une élévation de privilèges locale. Cela pourrait permettre à un utilisateur malveillant d'exécuter un shell inversé, de créer un utilisateur root, ou finalement toute action élevée de son choix.
Un script golang est exécuté pour créer un socket en écoute. Lorsque le script get-versions.sh correspond à l'expression regex de /tmp/[SERVICE], il exécutera le script dans un contexte élevé. Lorsque le script est exécuté dans un contexte élevé, au lieu de créer un socket en écoute, il exécutera une commande arbitraire (par exemple, /bin/bash -i), obtenant ainsi une élévation de privilèges.
https://blog.nviso.eu/2025/09/29/you-name-it-vmware-elevates-it-cve-2025-41244/