کشف آسیب‌پذیری بحرانی SQLi در افزونه وردپرس Ultimate Member

کشف آسیب‌پذیری بحرانی SQLi در افزونه وردپرس Ultimate Member

تاریخ ایجاد

یک آسیب‌پذیری بحرانی از نوع unauthenticated SQL Injection در افزونه وردپرس Ultimate Member کشف شده است که امکان دسترسی به پایگاه‌داده و کلمات عبور هش‌شده را برای مهاجم فراهم می‌کند. شناسه CVE-2024-1071 به این آسیب‌پذیری اختصاص یافته است. این افزونه دارای بیش از 200 هزار نصب فعال می‌باشد.
در نسخه‌های 2.1.3 تا 2.8.2 از افزونه Ultimate Member یک آسیب‌پذیری از نوع SQL Injection وجود دارد که به دلیل escaping ناکافی ورودی کاربر در پارامتر sorting ایجاد می‌شود و به مهاجمان اجازه می‌دهد بدون تصدیق هویت بتوانند اطلاعاتی را از پایگاه داده استخراج نمایند.
این افزونه دارای قابلیت‌های زیاد premium می‌باشد که یکی از این ویژگی‌ها به نام member directories کاربران وب‌سایت را فهرست می‌نماید. متاسفانه پیاده‌سازی ناامن پرس و جوی کاربران امکان تزریق دستورات SQL را فراهم می‌کند. با بررسی کد افزونه مشاهده می‌شود که از تابع ()ajax_get_members در کلاس Member_Directory_Meta برای پرس و جوی کاربران جهت فهرست نمودن آن‌ها استفاده می‌شود که ترتیب آن‌ها توسط پارامتر sorting تعیین می‌گردد.
اگرچه تابع ()sanitize_text_field در اینجا جهت محافظت در برابر SQL injection استفاده شده است، اما عبارت ORDER BY بدون تابع ()prepare به query اضافه شده است. تابع ()prepare برای اجرای امن دستورات SQL در وردپرس مورد استفاده قرار می‌گیرد و محافظت در برابر حملات SQL injection ایجاد می‌کند.
از آنجایی که به دلیل ساختار query استفاده از حملات Union-Based امکان‌پذیر نیست، یک مهاجم نیاز به روش Time-Based blind جهت استخراج اطلاعات از پایگاه داده دارد که با دستور ()SLEEP قابل انجام است. این آسیب‌پذیری تنها در صورتی قابل بهره‌برداری است که گزینه Enable custom table for usermeta در تنظیمات فعال شده باشد زیرا افزونه تنها در این حالت کلاس Member_Directory_Meta را فراخوانی می‌کند.
این یعنی تمام کاربران افزونه به طور پیش‌فرض در معرض خطر قرار ندارند. از آنجایی که برخی مهاجمان باهوش بوده و امکان chain کردن آسیب‌پذیری‌ها را دارند، پیشنهاد می‌شود کلیه کاربران توصیه‌های امنیتی مربوطه را انجام دهند.

محصولات تحت تاثیر
نسخه‌های 2.1.3 تا 2.8.2 افزونه وردپرس Ultimate Member تحت تاثیر این آسیب‌پذیری قرار دارند.

توصیه‌های امنیتی
آسیب‌پذیری ذکر شده در نسخه 2.8.3 به طور کامل برطرف شده است. توصیه می‌شود کلیه کاربران افزونه اطمینان حاصل کنند که وب‌سایت آن‌ها از نسخه وصله شده استفاده می‌کند.

منبع خبر:


https://www.wordfence.com/blog/2024/02/2063-bounty-awarded-for-unauthenticated-sql-injection-vulner…