
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/