- WP Fastest Cache Plugin دارای دو آسیب پذیری است که اخیراً وصله شده است.
- نویسندگان نسخه 0.9.5 را برای رفع این آسیب پذیری ها منتشر کردند .
- در صورت عدم وصله ، هکرها می توانند برای استخراج داده ها به سطح سرپرست دسترسی داشته باشند.
در ممیزی داخلی اخیر افزونه WP Fastest Cache ، Jetpack دو آسیب پذیری پیدا کرد. اولین مورد از یک تزریق SQL تأیید شده و دومی از یک Storage XSS (اسکریپت نویسی بین سایت) از طریق جعل درخواست بین سایت (CSRF) است.
اشکال تزریق SQL می تواند توسط هکرها برای دسترسی به اطلاعات حساس مورد استفاده قرار گیرد. آنها می توانند از آن برای استخراج ورودی های پایگاه داده از هر سایت آسیب دیده استفاده کنند. این آسیب پذیری می تواند دسترسی هکر به سطح سرپرست را به همراه داشته باشد و به آنها اجازه آزادی در کل وب سایت برای استخراج داده ها را بدهد. با این حال ، این سوء استفاده تنها در صورتی قابل اجرا است که افزونه ویرایشگر کلاسیک در وب سایت نصب و فعال باشد.
نویسنده افزونه از این آسیب پذیری ها مطلع شده است ، و آنها نسخه جدید 0.9.5 را برای رفع آنها منتشر کرده اند.
اولین آسیب پذیری تزریق SQL (CVE-2021-24869) در قطعه کد زیر توضیح داده شده است:
تابع استاتیک عمومی set_urls_with_terms () {
جهانی $ wpdb؛
$ terms = $ wpdb-> get_results ("SELECT * FROM" ". $ wpdb-> پیشوند." term_relationships` WHERE `object_id` =". static :: $ id، ARRAY_A)؛
foreach ($ terms as $ term_key => $ term_val) {
static :: set_term_urls ($ term_val ["term_taxonomy_id"]) ؛
}
}
روش set_urls_with_terms روش مستقیم static :: $ id را به یک پرس و جو SQL متصل می کند. این امر باعث ایجاد مشکلات دلخواه در ویژگی ذکر شده توسط کاربران وارد شده می شود. آنها می توانند از روش SinglePreloadWPFC :: set_id () که از طریق admin_notices اجرا می شود ، استفاده کنند وردپرس اجرا می شود.
تابع استاتیک عمومی set_id () {
if (isset ($ _ GET ["post"]) && $ _GET ["post"]) {
استاتیک :: $ id = esc_sql ($ _ GET ["post"])؛
if (get_post_status (static :: $ id)! = "انتشار") {
استاتیک :: $ id = 0؛
}
}
}
در حالی که set_id از طریق تابع get_post_status () اطمینان حاصل می کند که تمام نقاط شناسایی داده شده منجر به ارسال پست های معتبر و منتشر شده می شوند ، اما برای اطمینان از شناسه اصلی کافی نیست. تابع get_post_status () همچنین به get_post () داخلی منجر می شود ، که به نوبه خود ، شناسه ای را که دریافت می کند در قالب یک عدد صحیح قرار می دهد در حالی که در پایگاه داده پستهای مربوط را جستجو می کند.
به عبارت دیگر ، اگر شناسه ارائه شده 1234 یا 1 = 1 باشد ، get_post_status () وضعیت پستی را که شناسه آن 1234 است بازیابی می کند ، اما 1234 OR 1 = 1 قرار است در پرس و جو آسیب پذیر SQL در SinglePreloadWPFC :: set_urls_with_terms ().
دومین آسیب پذیری (CVE-2021-24869) ناشی از Stored XSS از طریق CSRF در زیر توضیح داده شده است:
روش CdnWPFC :: save_cdn_integration () از طریق عمل wp_ajax_wpfc_save_cdn_integration AJAX برای تنظیم گزینه های خاص CDN استفاده می شود. این عملکرد حقوق و امتیازات را با current_user_can () و توابع مربوطه انجام می دهد تا فرستنده های درخواست را قادر به تغییر تنظیمات مربوطه کند. این اطمینان نمی دهد که آنها قصد مشابهی داشته اند ، که توسط چک های غیرواقعی انجام می شود.
گزارش اشکال ادعا می کند که این گزینه ها به طور بالقوه می توانند به هکرها فرصت دهند تا جاوا اسکریپت های سرکش را در هر وب سایت آسیب دیده ذخیره کنند. نویسندگان افزونه WP Fastest Cache قبلاً این مشکلات را با آخرین نسخه وصله 0.9.5 خود برطرف کرده اند. به کاربران توصیه می شود که در صورت استفاده از نسخه های قدیمی افزونه در اسرع وقت آن را به روز کنند.