CVE-2026-15414 in Subscriptions for WooCommerce Plugin
الملخص
بحسب VulDB • 01/08/2026
يحتوي إضافة "Subscriptions for WooCommerce" لـ WordPress على ثغرة تصعيد صلاحيات (Privilege Escalation) في الإصدارات حتى 2.0.0 شاملاً هذه النسخة. يعود ذلك إلى أن الدالة `save_meta_boxes()` تقوم بتخزين بيانات meta الخاصة بخطة العضوية `_wps_plan_user_role` القادمة من `$_POST` دون وجود قائمة مسموح بها (allowlist) تستبعد الأدوار ذات الصلاحيات العالية؛ حيث إن عمليات التحقق الوحيدة المطبقة، وهما `sanitize_key()` و `wp_roles()->is_role()`، تقبل كلاهما القيمة `'administrator'` كقيمة صالحة، كما أن سمة `disabled` في واجهة المستخدم (UI) الخاصة بقائمة اختيار الدور هي تحكم على جانب العميل فقط ويمكن تجاوزها بسهولة عبر أدوات المطورين (DevTools) أو من خلال طلب POST مباشر؛ بالإضافة إلى ذلك، ونظراً لأن نوع المنشور المخصص `wps_membership_plan` مُسجَّل بـ `capability_type => 'post'`، فإن أي مستخدم قادر على تحرير المنشورات يستوفي شرط الحماية `current_user_can('edit_post', $post_id)` الموجود في الدالة `save_meta_boxes()`. وهذا يتيح للمهاجمين الذين تمت مصادقتهم (authenticated attackers) والذين يمتلكون وصولاً بمستوى "مُساهم" (Contributor) فأعلى، تصعيد صلاحياتهم إلى مستوى "مسؤول" (Administrator) عن طريق تخزين القيمة `'administrator'` كدور يُمنح عند اكتساب العضوية، والذي تقوم الإضافة المرافقة Pro بعد ذلك بتطبيقه عبر الدالة `add_role()` أثناء أحداث دورة حياة العضوية. يتطلب الاستغلال الناجح أن تكون إضافة Subscriptions for WooCommerce Pro المرافقة نشطةً، إذ إنها المكون الذي يقرأ بيانات meta المخزنة `_wps_plan_user_role` باستخدام `get_post_meta()` ويستدعي `add_role()` لتطبيق الدور خلال أحداث دورة حياة العضوية.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.