کمپانی VMware یه آسیب پذیری دور زدن احراز هویت رو در VMware Cloud Director Appliance (VCD Appliance) افشاء کرده که بصورت خصوصی به این کمپانی گزارش شده.
Cloud Director امکان میده تا ادمین های VMware ، سرویس های ابری سازمانشون رو بعنوان قسمتی از Virtual Data Centers (VDC) مدیریت کنن. با توجه به این ویژگی میشه حدس زد که در محیط های سازمانی و حساس مورد استفاده قرار میگیره.
آسیب پذیری شناسه CVE-2023-34060 رو داره و امکان دور زدن احرازهویت رو برای مهاجم فراهم میکنه. امتیاز 9.8 و شدت بحرانی داره. آسیب پذیری فقط در VCD Appliance هایی هستش که از یه نسخه قدیمی تر به نسخه ی 10.5 بروز شدن.
در نسخه ی ارتقاء یافته ی VMware Cloud Director Appliance 10.5 ، بازیگر تهدید میتونه احرازهویت رو در پورت 22 برای SSH و پورت 5480 برای appliance management console دور بزنه. این دور زدن روی پورت 443 برای VCD provider و tenant login وجود نداره. همچنین اگه VMware Cloud Director Appliance 10.5 بصورت نصب جدید مستقر کرده باشید،تحت تاثیر این آسیب پذیری نیستید.
دلیل آسیب پذیری اینه که ، VMware Cloud Director Appliance از یه بسته ای بنام sssd استفاده میکنه که موقع نصب یسری گزینه ی نا امن بطور پیش فرض به فایل پیکربندی pam.d اضافه میکنه.
نسخه های تحت تاثیر و اصلاح شده :
Product | Version | Running On | Fixed Version |
VMware Cloud Director Appliance
|
10.5 if upgraded from 10.4.x or below.
|
Photon OS
|
|
VMware Cloud Director Appliance
|
10.5 new install
|
Photon OS
|
Unaffected
|
VMware Cloud Director Appliance
|
10.4.x and Below
|
Photon OS
|
Unaffected
|
اصلاح آسیب :
اولا اینکه آسیب پذیری اصلاحیه نداره و باید بصورت دستی با یه اسکریپت اونو اصلاح کنید. دوما اینکه روی VMware Cloud Director 10.5.0 هستش که از نسخه ی قدیمی به این نسخه بروز شده باشه . اگه نسخه ی 10.5.0 رو نصب کردید ، تحت تاثیر نیستید و همچنین نسخه ی نصبی روی لینوکس هم تحت تاثیر نیست. اگه این موراد رو دارید که بی خیال بشید اگه نه که مراحل زیر رو انجام بدید .
نکته ی بعدی اینکه اگه راه حل زیر رو انجام دادید، هرگونه ارتقاء یا اصلاح Cellها به یه نسخه ی آسیب پذیر، این راه حل رو از بین میبره. همچنین اگه Cellهارو از یه نسخه ی اصلاح نشده مستقر کنید، راه حل دوباره اعمال نمیشه. خلاصه اینکه باید روی یه Cellی که جدیدا مستقر شده، اعمال بشه.
اگه میخوایید بصورت دستی بررسی کنید که اصلا ،تحت تاثیر این آسیب پذیری هستید یا نه ، دستور زیر رو اجرا کنید و اگه خروجی رو مشاهده کردید، یعنی تحت تاثیر هستید:
1 |
egrep 'unknown|sufficient|use_first_pass|optional pam_sss' /etc/pam.d/system* |
1- به Primary Cell در Server Group یه SSH بزنید.
2- اسکریپت WA_CVE-2023-34060.sh رو در دایرکتوری /opt/vmware/vcloud-director/data/transfer/ قرار بدید.
3- پرمیشن ها رو برای اجرا در مسیرهای زیر اعمال میکنید :
1 2 |
chown root:vcloud /opt/vmware/vcloud-director/data/transfer/WA_CVE-2023-34060.sh chmod 740 /opt/vmware/vcloud-director/data/transfer/WA_CVE-2023-34060.sh |
4- به دایرکتوری Transfer برید :
1 |
cd /opt/vmware/vcloud-director/data/transfer/ |
5- اسکریپت رو اجرا کنید :
1 |
./WA_CVE-2023-34060.sh |
6- مرحله ی 4 و 5 رو روی همه ی Cell ها در Server Group اعمال میکنید.
خروجی زیر برای محصولی هستش که تحت تاثیر این آسیب پذیری قرار داره :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Updating system-account file if needed account [default=bad success=ok user_unknown=ignore] pam_sss.so Removing account line from system-account file Successfully removed account pam_sss.so line from system-account file account sufficient pam_unix.so Removing sufficient qualification from pam_unix.so entry in system-account file Successfully removed sufficient qualification from pam_unix.so entry in system-account file Updating system-auth file if needed auth sufficient pam_sss.so use_first_pass Removing account line from system-auth file Successfully removed use_first_pass line from system-auth file auth sufficient pam_unix.so Removing sufficient qualification from pam_unix.so entry in system-auth file Successfully removed sufficient qualification from pam_unix.so entry in system-auth file Updating system-session file if needed session optional pam_sss.so Removing optional line from system-session file Successfully removed optional line from system-session file |
خروجی اسکریپت برای محصولی که تحت تاثیر نیست یا اصلاح شده :
1 2 3 4 5 6 7 8 |
Updating system-account file if needed No changes were needed to system-account file to remove the account pam_sss.so reference. No changes were needed to system-account file to remove sufficient qualification from pam_unix.so entry. Updating system-auth file if needed No changes were needed to system-auth file to remove use_first_pass reference. No changes were needed to system-auth file to remove sufficient qualification from pam_unix.so entry Updating system-session file if needed Updates to system-session file were not needed. |
این sssd روی چندین بخش تاثیر میزاره که جدول زیر نسخه ی تحت تاثیر و نسخه ی اصلاح شده یا بدون تاثیر نشون میده :
File | File Contents |
Affected /etc/pam.d/system-account | # Begin /etc/pam.d/system-account account required pam_tally2.so file=/var/log/tallylog account sufficient pam_unix.so account [default=bad success=ok user_unknown=ignore] pam_sss.so # End /etc/pam.d/system-account |
Unaffected /etc/pam.d/system-account | # Begin /etc/pam.d/system-account account required pam_tally2.so file=/var/log/tallylog account required pam_unix.so # End /etc/pam.d/system-account |
Affected /etc/pam.d/system-auth | # Begin /etc/pam.d/system-auth auth required pam_env.so auth required pam_tally2.so onerr=fail deny=3 unlock_time=900 root_unlock_time=900 file=/var/log/tallylog auth sufficient pam_unix.so auth sufficient pam_sss.so use_first_pass auth optional pam_faildelay.so delay=4000000 # End /etc/pam.d/system-auth |
Unaffected /etc/pam.d/system-auth | # Begin /etc/pam.d/system-auth auth required pam_env.so auth required pam_tally2.so onerr=fail deny=3 unlock_time=900 root_unlock_time=900 file=/var/log/tallylog auth required pam_unix.so auth optional pam_faildelay.so delay=4000000 # End /etc/pam.d/system-auth |
Affected /etc/pam.d/system-session | # Begin /etc/pam.d/system-session session required pam_unix.so session optional pam_sss.so session required pam_limits.so session optional pam_motd.so session optional pam_lastlog.so silent session optional pam_systemd.so # End /etc/pam.d/system-session |
Unaffected /etc/pam.d/system-session | # Begin /etc/pam.d/system-session session required pam_unix.so session required pam_limits.so session optional pam_motd.so session optional pam_lastlog.so silent session optional pam_systemd.so # End /etc/pam.d/system-session |