پایگاه اطلاعات آسیبپذیری ملی ایالات متحده، توصیهای درباره آسیبپذیری XSS منتشر کرد که بر فرم سازنده محبوب Metform Elementor اثر میگذارد، که بیش از ۲۰۰۰۰۰ نصب فعال را در معرض آسیبپذیری قرار میدهد.
Stored Cross Site Scripting (XSS)
یک آسیبپذیری ذخیرهشده XSS آسیبپذیری است که در آن یک وبسایت نمیتواند یک ورودی را به درستی ایمن کند، مانند فرم ارسال، که به هکر اجازه میدهد یک اسکریپت مخرب را در سرور آپلود کند.
سپس اسکریپت توسط یک مرورگر بازدیدکنندگان سایت دانلود و اجرا میشود و به هکر اجازه میدهد کوکیهای بازدیدکنندگان را بدزدد یا مجوزهای وبسایت آنها را به دست آورد، که سپس میتواند منجر به تصاحب وبسایت شود.
پروژه غیرانتفاعی Open Worldwide Application Security Project (OWASP) توضیح می دهد آسیب پذیری Cross Site Scripting:
«یک مهاجم میتواند از XSS برای ارسال یک اسکریپت مخرب به یک کاربر ناآگاه استفاده کند.
مرورگر کاربر نهایی راهی ندارد که بداند اسکریپت نباید قابل اعتماد باشد و اسکریپت را اجرا می کند.
از آنجایی که فکر میکند اسکریپت از یک منبع مطمئن آمده است، اسکریپت مخرب میتواند به کوکیها، نشانههای جلسه یا سایر اطلاعات حساسی که توسط مرورگر حفظ شده و با آن سایت استفاده میشود، دسترسی داشته باشد.”
انواع مختلفی از حملات XSS وجود دارد.
آسیبپذیری مؤثر بر افزونه فرم تماس Elementor یک ذخیرهشده XSS نامیده میشود زیرا اسکریپت مخرب در خود سرورهای وبسایت آپلود و ذخیره میشود.
آنچه این آسیبپذیری را نگرانکننده میکند این است که نسخهای است که احراز هویت نشده است، به این معنی که مهاجم برای شروع حمله به هیچ نوع مجوز وبسایتی نیاز ندارد.
به این آسیبپذیری خاص امتیاز تهدید ۷.۲ در مقیاس ۱-۱۰ داده شد که سطح ۱۰ بالاترین سطح است.
چه چیزی باعث آسیب پذیری شد
آنچه باعث این آسیبپذیری شده، مشکل کدگذاری در افزونه است که ورودیهای ناخواسته را از طریق فرم ارسال تماس بررسی و مسدود نمیکند.
این فرآیند برای بررسی و مسدود کردن آپلودهای ناخواسته، پاکسازی نامیده میشود.
مشکل دوم نقص افزونه در ایمن سازی داده هایی بود که توسط افزونه خروجی می شود. این خروجی فرار نامیده می شود.
WordPress یک صفحه برنامهنویس درباره فرار از دادهها منتشر میکند. >، که توضیح می دهد:
“خروج از خروجی فرآیند ایمن سازی داده های خروجی با حذف داده های ناخواسته، مانند تگ های HTML یا اسکریپت نادرست است. این فرآیند به امنیت دادههای شما قبل از ارائه آن برای کاربر نهایی کمک میکند.»
عدم سالمسازی ورودیها برای فرار از خروجیها دو مشکل اصلی هستند که منجر به آسیبپذیری میشوند.
پایگاه ملی آسیبپذیری هشدار توضیح میدهد:
“افزونه Metform Elementor Contact Form Builder برای وردپرس در برابر اسکریپت های بین سایتی ذخیره شده از طریق نواحی متنی در فرم ها در نسخه های تا، و از جمله، ۳.۱.۲ آسیب پذیر است، به دلیل سالم سازی ناکافی ورودی و فرار خروجی.
این امکان را برای مهاجمان احراز هویت نشده فراهم میکند تا اسکریپتهای وب دلخواه را در صفحاتی تزریق کنند که هر زمان که کاربر به صفحه تزریق شده، که صفحه ارسالها است، دسترسی پیدا کند، اجرا میشوند.”
افزونه Metform Elementor وصله شده است
ناشران Metform Elementor Contact Form Builder وصله هایی را در طول چندین نسخه برای رفع این آسیب پذیری منتشر کردند.
اینها نسخههای بهروزرسانی شده افزونه و رفعهای آنها هستند:
- نسخه ۳.۲.۰
بهبود: امنیت و بهداشت - نسخه ۳.۲.۲
رفع شد: مشکل مجوز امنیتی برای نقطه پایانی REST API - نسخه ۳.۲.۳ (وصلهشده در ۰۳-۰۶-۲۰۲۳)
رفع شد: مشکل فرار در قسمت امضا.
رفع شد : ارسال فرم برای شرایط کاربران وارد نشده.
ناشران WordPress که از Metform Elementor Contact Form Builder استفاده می کنند باید افزونه خود را به نسخه ۳.۲.۳ به روز کنند، نسخه ای که به طور کامل وصله شده است.
توصیه را در وب سایت پایگاه داده ملی آسیب پذیری بخوانید:
جزئیات CVE-2023-0084
تغییر لاگ رسمی افزونه را که وصلهها را مستند میکند بخوانید:
قالب تغییر فرم تماس با Metform Elementor
تصویر ویژه توسط Shutterstock/Asier Romero