کشف چند آسیب‌پذیری بحرانی در افزونه وردپرس LearnPress

کشف چند آسیب‌پذیری بحرانی در افزونه وردپرس LearnPress

تاریخ ایجاد

مقدمه
چند آسیب‌پذیری با شناسه CVE-2022-45808 در نسخه‌های 4.1.7.3.2 و قبل‌تر افزونه LearnPress سیستم مدیریت محتوای وردپرس کشف شده که امکان اجرای دستورات SQL از راه دور و الحاق پرونده محلی را فراهم می‌کند.
جزئیات آسیب‌پذیری
افزونه LearnPress با بیش از 100 هزار نصب، یک افزونه جامع LMS برای سیستم مدیریت محتوای وردپرس است. با استفاده از این افزونه محبوب می‌توان دروس آنلاین را ایجاد کرده و به فروش رساند. این افزونه قابلیت ایجاد دوره آموزشی همراه با کوییز را توسط یک رابط کاربری ساده فراهم می‌نماید. در نسخه 4.1.7.3.2 و قبل‌تر این افزونه تعدادی آسیب‌‌پذیری بحرانی پیدا شده که به مهاجمان اجازه می‌دهد بدون تصدیق هویت دستورات SQL را به پایگاه داده تزریق نموده و یا Local File Inclusion انجام دهند. یک آسیب‌پذیری دیگر نیز به کاربران ثبت نام شده اجازه تزریق دستورات SQL را می‌دهد.
کد آسیب‌پذیر به LFI در مسیر inc/rest-api/v1/frontend/class-lp-rest-courses-controller.php قرار گرفته است. تابع list_courses مسئول ارسال درخواست API به مسیر lp/v1/courses/archive-course می‌باشد. سه متغیر به نامtemplate_path_item ، template_path و template_pagination_path در داخل این تابع قرار دارند که به مهاجم امکان رسیدن به LFI بدون انجام تصدیق هویت را می‌دهند:

عکس


کدی که دارای آسیب‌پذیری تزریق دستورات SQL بدون نیاز به تصدیق هویت است در مسیر inc/databases/class-lp-db.php قرار دارد. تابع execute مقدار filter را به عنوان پارامتر اول می‌پذیرد و از مکان‌های مختلفی در داخل پلاگین مخصوصاً جریان فرآیند REST API قابل فراخوانی است. کد زیر که متغیر ORDER_BY را الحاق می‌کند باعث به وجود آمدن این آسیب‌پذیری است:

عکس

در دو قسمت از کدهای مسیر زیر نیز یک آسیب‌پذیری وجود دارد که به کاربران سایت اجازه می‌دهد پس از تصدیق هویت دستورات SQL را تزریق نمایند:

عکس

محصولات تحت‌تأثیر
افزونه سیستم مدیریت یادگیری وردپرس LearnPress نسخه 4.1.7.3.2 و پایین‌تر
 توصیه‌های امنیتی
نسخه 4.2.0 این افزونه برای برطرف کردن آسیب‌پذیری‌های فوق منتشر شده است. به کلیه کاربران توصیه می‌شود در اسرع وقت این نسخه یا نسخه‌های بالاتر را نصب نمایند.

منابع خبر