
Advanced Custom Fields: Extended <= 0.9.2.5 - تصعيد صلاحيات غير مصادق عليه عبر تجاوز التحقق للمعامل '_acf_post_id'
Advanced Custom Fields: Extended <= 0.9.2.5 - تصعيد غير مصادق عليه للامتيازات عبر تجاوز التحقق إلى معامل '_acf_post_id' تؤثر هذه الثغرة الأمنية الحرجة (CVSS 9.8) على جميع إصدارات إضافة ووردبريس الشهيرة Advanced Custom Fields: Extended (ACF Extended) بدءًا من الإصدار 0.9.2.5 فصاعدًا.
على الرغم من إصلاحها في الإصدار 0.9.2.6، تعمل الثغرة على النحو التالي:
وظيفة المشكلة: في جذر الثغرة يكمن الثقة غير المدققة التي تطبقها الدالة after_validate_save_post() على معامل POST المُسمى _acf_post_id. لا تخضع هذه المعلمة لأي عملية تحقق أو توثيق من قبل الإضافة.
تجاوز التحقق: من خلال التلاعب بمعامل _acf_post_id، يتسبب المهاجم في اختيار الدالة بشكل صامت لفرع تنظيف يتجاهل جميع أخطاء التحقق التي لا تحمل البادئة "acfe:". وهذا يعطل اثنين من الفحوصات الأمنية الحرجة:
خطأ التحقق من قائمة أذونات الدور الذي أضافته الدالة acfe_field_user_roles::validate_front_value().
خطأ حماية امتيازات المسؤول الذي أضافته الدالة acfe_module_form_action_user::validate_action().
إنشاء مسؤول غير مصرح به: بعد تجاوز هذه الفحوصات، يتم تنفيذ الدالة wp_insert_user() مع وسيطة دور "administrator" المقدمة من المهاجم. ونتيجة لذلك، يتم إنشاء حساب مسؤول جديد على النظام بواسطة مستخدم غير مصادق عليه، خلافًا للغرض المقصود من الإضافة.
التدفق المنطقي لكود الاستغلال النص البرمجي التالي بلغة بايثون هو دليل إثبات يوضح كيف يمكن استغلال هذه الثغرة. يعمل الكود عن طريق أتمتة جميع الخطوات اللازمة.