
VMware Aria Operations < 4.18.5 & VMware Tools - Lokale Privilegienausweitung
VMware Aria Operations < 4.18.5 & VMware Tools – Lokale Privilegieneskalation
Bitte lesen Sie den in den Referenzen aufgeführten Artikel, um eine umfassendere und ausführlichere Erklärung der Schwachstelle zu erhalten.
Kurzfassung
Ein Shell-Skript innerhalb von VMware Tools namens get-versions.sh verwendet ein breit gefasstes Regex-Muster (\S), um laufende Prozesse mit lauschenden Sockets zu identifizieren. Bei übereinstimmenden Prozessen führt es den Prozess mit dem jeweiligen Versions-Flag (-v, --version, etc.) aus, um die laufende Version des Dienstes abzurufen.
Auszug aus get-versions.sh (Zeilen 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
}
Auszug aus get-versions.sh (Zeilen 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
Die oberste Zeile /\S+/httpd($|\s) ist darauf ausgelegt, den korrekten Installationspfad wie /usr/bin/httpd abzugleichen. Wenn jedoch ein unprivilegierter Benutzer ein Skript in /tmp/httpd, einem global beschreibbaren Verzeichnis, erstellt und den Prozess ausführt, wird es – solange es einen lauschenden Socket besitzt (auf jeder Schnittstelle – sogar localhost) – in einem erhöhten Kontext durch das VMware-Tools-Skript ausgeführt, wodurch eine lokale Privilegieneskalation erreicht wird. Dies könnte einem böswilligen Benutzer ermöglichen, eine Reverse Shell auszuführen, einen Root-Benutzer zu erstellen oder letztendlich jede beliebige erhöhte Aktion durchzuführen, die er wählt.
Ein Golang-Skript wird ausgeführt, um einen lauschenden Socket zu erstellen. Wenn das get-versions.sh-Skript den Regex-Ausdruck von /tmp/[SERVICE] abgleicht, führt es das Skript in einem erhöhten Kontext aus. Wenn das Skript in einem erhöhten Kontext ausgeführt wird, erstellt es keinen lauschenden Socket, sondern führt einen beliebigen Befehl aus (z. B. /bin/bash -i), wodurch eine Privilegieneskalation erreicht wird.
https://blog.nviso.eu/2025/09/29/you-name-it-vmware-elevates-it-cve-2025-41244/