
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/