VMware Aria Operations < 4.18.5 与 VMware Tools - 本地权限提升
请阅读参考资料中的文章,以获取对该漏洞更全面、更详细的说明。
TL;DR
VMware Tools 中名为 get-versions.sh 的 shell 脚本使用一个宽泛匹配的正则表达式(\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 脚本以提升的上下文执行——从而实现本地权限提升。这可能使恶意用户能够执行反向 shell、创建 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/