کشف دو آسیب‌پذیری جدی در افزونه‌ی Rank Math سیستم مدیریت محتوای WordPress

کشف دو آسیب‌پذیری جدی در افزونه‌ی Rank Math سیستم مدیریت محتوای WordPress

تاریخ ایجاد

به گفته‌ی محققان، یک جفت ‫آسیب‌پذیری امنیتی در افزونه‌ی بهینه‌سازی موتور جستجوی وردپرس (SEO) معروف به Rank Math وجود دارد که می‌تواند به مجرمان سایبری از راه دور اجازه دهد امتیازات را بالا ببرند و redirectهای مخربی بر روی یک سایت هدف نصب کنند. این افزونه‌ی WordPress بیش از 200000 بار نصب شده است.
یکی از این آسیب‌پذیری‌ها که از نظر شدت، بحرانی رتبه‌بندی شده است (امتیاز CVSSv3 آن 10 از 10 است) به مهاجم غیرمجاز اجازه می‌دهد ابرداده‌های دلخواه را به‌روزرسانی کند. این افزونه یک نقطه‌پایانی REST-API (rankmath/v1/updateMeta) را ثبت می‌کند. این نقطه‌پایانی تابعی به نام “update-metadate” را فراخوانی می‌کند. این تابع می‌تواند برای به‌روزرسانی slug در پست‌های موجود، یا حذف و به‌روزرسانی ابرداده‌ها برای پست‌ها، نظرات و اصطلاحات استفاده شود. نقطه‌پایانی REST-API همچنین امکان به‌روزرسانی ابرداده را برای کاربران فراهم می‌آورد.
این نقص ناشی از عدم بررسی مجوزهای کاربرانی است که تغییرات ایجاد می‌کنند. مجوزهای کاربر WordPress در جدول usermeta ذخیره می‌شود. مهاجم غیرمجاز می‌تواند با ارسال یک درخواست _POST $ به wp-json / rankmath / v1 / updateMeta، به همراه تنظیم پارامتر objectID به User ID برای تغییر، تنظیم پارامتر objectType به user، تنظیم پارامتر meta[wp_user_level] به 10، تنظیم پارامتر meta[wp_capabilities][administrator] به 1، به هر کاربر ثبت‌شده امتیاز مدیریتی اعطا کند. سوءاستفاده از این نقص می‌‌تواند به هر کاربر ثبت‌نام‌شده در سایت امتیاز مدیریتی اعطا کند یا آن را ابطال نماید. مهاجمان همچنین می توانند با ارسال درخواست مشابهی با تنظیم پارامترهای meta[wp_user_level] و meta[wp_capabilities][administrator] به مقادیر خالی، امتیاز مدیران موجود را لغو کنند. این امر مدیران را از سایت‌های خود اخراج می‌کند.
به گفته‌ی محققان، حملات نامبرده، بحرانی‌ترین حملات ممکن هستند. بسته به سایر افرونه‌های نصب‌شده در یک سایت، قابلیت به‌روزرسانی ابرداده‌‌ی پست، عبارت و نظر می‌تواند به‌طور بالقوه برای بسیاری از سوءاستفاده‌‌های دیگر مانند اسکریپت‌نویسی متقابل (XSS) استفاده شود.
آسیب‌پذیری دوم که از نظر شدت، «بالا» رتبه‌بندی شده است (امتیاز CVSSv3 آن 7.4 از 10 است)، می‌تواند یک مهاجم غیرمجاز را قادر سازد redirectهایی را تقریباً از هر مکانی در سایت به هر مقصد مورد‌نظر خود، ایجاد کند.
افزونه‌ی Rank Math دارای یک ماژول اختیاری است که می‌تواند برای ایجاد redirectها در یک سایت استفاده شود. به عنوان مثال ممکن است یک مدیر این کار را برای دورکردن بازدیدکنندگان از صفحاتی که در دست ساخت هستند، انجام دهد. به منظور اضافه کردن این ویژگی، افزونه‌ی Rank Math باز هم یک نقطه‌پایانی REST-API به نام "rankmath / v1 / updateRedirection" ثبت می‌کند و مانند آسیب‌پذیری اول، این نقطه‌پایانی نمی‌تواند مجوزها را بررسی کند. در نتیجه مهاجم می‌تواند به راحتی redirectهایی ایجاد کند و redirectهای موجود را تغییر دهد. به منظور سوءاستفاده از این نقص، لازم است مهاجم غیرمجاز یک درخواست $ _POST به rankmath / v1 / updateRedirection، به همراه تنظیم پارامتر redirectionUrl به مکانی که می‌خواهند redirect برود، تنظیم پارامتر redirectionSources به مکانی که از آنجا redirect می‌شود و تنظیم پارامتر hasRedirect به true، ارسال کند. چنین حمله‌ای می‌تواند با redirect بازدیدکنندگان به یک سایت مخرب، تقریباً مانع از دسترسی به تمامی محتوای سایت موجود شود. آنچه مانع از بحرانی‌شدن این نقص می‌شود این است که redirect نمی‌تواند به فایل یا پوشه‌ی موجود در کارگزار، از جمله صفحه اصلی سایت، تنظیم شود.
مدیران وب می‌توانند با ایجاد یک “permission-callback” در هر نقطه‌‌پایانی REST-API یا با به‌روزرسانی آخرین نسخه از این افزونه، شدت آسیب این نقص را کاهش دهند.
این دو نقص در 24 مارس به توسعه‌دهنده‌ی افزونه‌ی Rank Math گزارش شدند و وصله‌ی مربوط به آن‌ها در آخرین نسخه‌ی 1.0.41.1 موجود است. مدیران وب باید سایت‌های خود را به این آخرین نسخه به‌روزرسانی کنند.

برچسب‌ها