پایگاه داده ملی آسیبپذیری ایالات متحده توصیهای درباره یک آسیبپذیری XSS منتشر کرد که بر فرم سازنده محبوب Metform Elementor اثر میگذارد، که بیش از 200000 نصب فعال را در معرض آسیبپذیری قرار میدهد.
Scripting Cross Site Stored (XSS)
آسیبپذیری ذخیرهشده XSS آسیبپذیری است که در آن یک وبسایت نمیتواند یک ورودی را به درستی ایمن کند، مانند فرم ارسال، که به هکر اجازه میدهد یک اسکریپت مخرب را روی سرور آپلود کند.
سپس این اسکریپت توسط یک مرورگر بازدیدکنندگان سایت دانلود و اجرا میشود و به هکر اجازه میدهد کوکیهای بازدیدکنندگان را بدزدد یا مجوزهای وبسایت آنها را به دست آورد، که سپس میتواند منجر به تصاحب وبسایت شود.
پروژه غیرانتفاعی Open Worldwide Application Security Project (OWASP) آسیب پذیری Cross Site Scripting را شرح می دهد:
«یک مهاجم میتواند از XSS برای ارسال یک اسکریپت مخرب به یک کاربر نامطمئن استفاده کند.
مرورگر کاربر نهایی راهی ندارد که بداند اسکریپت نباید قابل اعتماد باشد و اسکریپت را اجرا می کند.
از آنجایی که فکر میکند اسکریپت از یک منبع مطمئن آمده است، اسکریپت مخرب میتواند به کوکیها، نشانههای جلسه یا سایر اطلاعات حساسی که توسط مرورگر حفظ شده و با آن سایت استفاده میشود، دسترسی داشته باشد.
انواع مختلفی از حملات XSS وجود دارد.
آسیب پذیری موثر بر افزونه فرم تماس Elementor a نامیده می شود ذخیره شده است XSS زیرا اسکریپت مخرب در خود سرورهای وب سایت آپلود و ذخیره می شود.
چیزی که این آسیبپذیری را نگرانکننده میکند این است که یک نسخه تأیید نشده است، به این معنی که مهاجم برای شروع حمله به هیچ نوع مجوز وبسایتی نیاز ندارد.
به این آسیبپذیری خاص، امتیاز تهدید 7.2 در مقیاس 1-10 اختصاص داده شد که سطح 10 بالاترین سطح است.
چه چیزی باعث آسیب پذیری شد
آنچه باعث این آسیبپذیری شده است، مشکل کدگذاری در افزونه است که نتوانسته است ورودیهای ناخواسته را از طریق فرم ارسال تماس بررسی و مسدود کند.
این فرآیند برای بررسی و مسدود کردن آپلودهای ناخواسته پاکسازی نامیده می شود.
مشکل دوم، نقص پلاگین در ایمن سازی داده هایی بود که توسط افزونه خروجی می شود. به این حالت خروجی فرار می گویند.
وردپرس یک را منتشر می کند صفحه توسعه دهنده درباره فرار از داده، که توضیح می دهد:
خروجی فرار فرآیند ایمن سازی داده های خروجی با حذف داده های ناخواسته، مانند HTML نادرست یا تگ های اسکریپت است. این فرآیند به امنیت دادههای شما قبل از ارائه آن برای کاربر نهایی کمک میکند.»
عدم پاکسازی ورودیها برای فرار از خروجیها دو موضوع اصلی است که منجر به آسیبپذیری شده است.
پایگاه ملی آسیب پذیری هشدار توضیح می دهد:
“افزونه Metform Elementor Contact Form Builder برای وردپرس در برابر اسکریپت های بین سایتی ذخیره شده از طریق قسمت های متنی روی فرم ها در نسخه های تا، و از جمله، 3.1.2 به دلیل پاکسازی ناکافی ورودی و خروج خروجی آسیب پذیر است.
این امکان را برای مهاجمان احراز هویت نشده فراهم میکند تا اسکریپتهای وب دلخواه را در صفحاتی تزریق کنند که هر زمان که کاربر به صفحه تزریق شده، که صفحه ارسالها است، دسترسی پیدا کند، اجرا میشوند.
افزونه Metform Elementor پچ شده است
ناشران Metform Elementor Contact Form Builder وصله هایی را در طول چندین نسخه برای رفع این آسیب پذیری منتشر کردند.
اینها نسخه های به روز افزونه و رفع آنها هستند:
- نسخه 3.2.0
بهبود یافته: امنیت و بهداشت - نسخه 3.2.2
درست شد: مشکل مجوز امنیتی برای نقطه پایانی REST API - نسخه 3.2.3 (وصله شده در 03-06-2023)
درست شد: مشکل فرار در زمینه امضا
درست شد: شرایط ارسال فرم برای کاربران وارد نشده است.
ناشران وردپرس که از Metform Elementor Contact Form Builder استفاده می کنند باید افزونه خود را به نسخه 3.2.3 به روز کنند، نسخه ای که به طور کامل وصله شده است.
توصیه در وب سایت پایگاه داده ملی آسیب پذیری را بخوانید:
لاگ رسمی تغییرات افزونه را که پچ ها را مستند می کند بخوانید:
Metform Elementor Contact Form Builder Changelog
تصویر برجسته توسط Shutterstock/Asier Romero
window.addEventListener( 'load2', function() { console.log('load_fin');
if( sopp != 'yes' && !window.ss_u ){
!function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window,document,'script', '
if( typeof sopp !== "undefined" && sopp === 'yes' ){ fbq('dataProcessingOptions', ['LDU'], 1, 1000); }else{ fbq('dataProcessingOptions', []); }
fbq('init', '1321385257908563');
fbq('track', 'PageView');
fbq('trackSingle', '1321385257908563', 'ViewContent', { content_name: 'metform-elementor-contact-form-builder-vulnerability', content_category: 'news wp' }); } });
منبع: https://www.searchenginejournal.com/metform-elementor-contact-form-builder-vulnerability/481713/