
VMware Aria Operations < 4.18.5 и VMware Tools — локальное повышение привилегий
VMware Aria Operations < 4.18.5 и VMware Tools — локальное повышение привилегий
Пожалуйста, прочитайте статью, указанную в ссылках, чтобы получить более полное и подробное объяснение уязвимости.
Кратко
Скрипт оболочки в составе VMware Tools под названием get-versions.sh использует шаблон регулярного выражения с широким сопоставлением (\S) для идентификации запущенных процессов с прослушивающими сокетами. Для сопоставленных процессов он выполняет процесс с соответствующим флагом версии (-v, --version и т. д.), чтобы получить текущую версию службы.
Фрагмент из get-versions.sh (строки 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
}
Фрагмент из get-versions.sh (строки 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
Верхняя строка /\S+/httpd($|\s) предназначена для сопоставления с правильным путём установки, например /usr/bin/httpd. Однако если непривилегированный пользователь создаст скрипт в /tmp/httpd, каталоге с глобальным доступом на запись, и запустит процесс, то, пока у него есть прослушивающий сокет (на любом интерфейсе — даже localhost), он будет выполнен в контексте с повышенными привилегиями скриптом VMware Tools — что приводит к локальному повышению привилегий. Это может позволить злоумышленнику запустить обратную оболочку, создать пользователя root или в конечном итоге выполнить любое действие с повышенными привилегиями по своему выбору.
Выполняется скрипт на golang для создания прослушивающего сокета. Когда скрипт get-versions.sh сопоставляет регулярное выражение /tmp/[SERVICE], он запускает скрипт в контексте с повышенными привилегиями. Когда скрипт запускается в контексте с повышенными привилегиями, вместо создания прослушивающего сокета он выполняет произвольную команду (например, /bin/bash -i), получая повышение привилегий.
https://blog.nviso.eu/2025/09/29/you-name-it-vmware-elevates-it-cve-2025-41244/