این #آسیبپذیری از قابلیت #pingback فایل xmlrpc که در هستهی وردپرس وجود دارد برای اعمال حملات Dos به وبسایت استفاده میکند و نتیجتاً وبسایت از دسترس خارج میشود. وردپرسهای نسخه 5.3 به پایین آسیبپذیر هستند.
منشاء آسیبپذیری
آسیبپذیری از دو تابع system.multicall و pingback.ping در هستهی وردپرس نشات میگیرد. تابع system.multicall امکان فراخوانی دیگر APIها را فراهم میکند و از طرفی تابع pingback.ping برای ارسال درخواست HTTPS از سرور وردپرس به هر آدرس دلخواهی استفاده میشود. ارسال تعداد زیادی درخواستهای pingback.ping به سرور با استفاده از قابلیت multicall باعث اشغال بیش از حد منابع سرور شده و در نهایت موجب از دسترس خارج شدن وبسایت وردپرسی میشود (Denial of Service).
اکسپلویت آسیبپذیری
اکسپلویت منتشر شده برای این آسیبپذیری یک اسکریپت پایتونی (Python3) است که منجر به مصرف بیش از حد حافظه و CPU سرور آپاچی توسط سرویس MySQL میشود. سرورهای NGINX نیز در صورت استفاده از php-fpm آسیبپذیر هستند.
شکل زیر صفحهی لاگین سایت وردپرسی آسیبپذیر را بعد از عملیاتی کردن آسیبپذیری نشان میدهد.
برای غیرفعال کردن XML-PRC در وردپرس کافی است قطعه کد زیر را در فایل .htaccess در پوشه public_html قرار دهید.
# Block WordPress xmlrpc.php requests order deny,allow deny from all allow from 123.123.123.123
روش دیگر استفاده از افزونه Remove XML-RPC Pingback Pingاست که XML-PRC را بطور کل غیرفعال نمیکند و تنها ویژگی pingback وبسایت غیرفعال میشود.
منبع:
- 18