أعلنت شركة RIPS Technologies عن اكتشافها خللاً في WordPress وفي إضافة التجارة الإلكترونية WooCommerce التي طورتها شركة Automattic. وبحسب الإحصاءات الرسمية، تم تنزيل هذه الإضافة أكثر من أربعة ملايين مرة، ويبلغ عدد تثبيتاتها النشطة تقريباً العدد نفسه.
يوضح الباحثون أن هناك مشكلتين في هذا الأمر. المشكلة الأولى هي أنه عند تثبيت الإضافة على WordPress، الذي يستخدم أدواراً مختلفة للمستخدمين، فإنها لا تُنشئ نظام مصادقة خاصاً بها، بل تعتمد على نظام الصلاحيات الحالي في نظام إدارة المحتوى. ولتحقيق ذلك، تُنشئ الإضافة دوراً جديداً باستخدام ميزات WordPress الجديدة، ثم تقيّد تفاعله مع إعدادات نظام إدارة المحتوى والمستخدمين الآخرين عبر وظائفها الخاصة.
وهكذا، عند تثبيت WooCommerce، يُنشأ دور جديد باسم مدير المتجر (“store manager”)، ويمتلك صلاحية edit_users. وتتيح هذه الصلاحية للمستخدم تعديل المنشورات وكذلك ملفات تعريف أي مستخدم آخر في WordPress، بما في ذلك المسؤول.
يبدو أن مطوري WooCommerce وفّروا وظيفة تمنع المستخدمين الذين يملكون هذا الدور من التدخل في ملفات تعريف المسؤولين. لكن بسبب خلل في آلية عمل نظام إدارة صلاحيات الإضافات، عند تعطيل WooCommerce تتوقف وظيفة تقييد «مديري المتاجر» عن العمل، ويصبح بإمكان المستخدمين الذين يملكون هذا الدور تعديل حسابات المستخدمين الآخرين بحرية.
ولذلك، فإن الطريقة الوحيدة الموثوقة لتعطيل الإضافة هي أن يقوم المسؤول بتعطيلها وحذف جميع ملفاتها. وهنا تكمن المشكلة الثانية.
الحقيقة أن محللي RIPS Technologies اكتشفوا خللاً يتعلق بحذف ملفات WooCommerce في الإصدار 3.4.5 والإصدارات الأقدم. وتبين أن المستخدمين الذين يملكون صلاحيات مدير المتجر يستطيعون حذف أي ملف من الإضافة، بما في ذلك الملفات الأساسية لعملها. وبعد ذلك، تتوقف الإضافة عن العمل بشكل غير متوقع، فيعطّلها WordPress تلقائياً، ويعود الوضع إلى ما كان عليه قبل ذلك، حيث يستطيع المستخدم الذي يملك دور مدير المتجر تعديل ملفات تعريف أي مستخدم.
يوضح الباحثون أنه في مثل هذا الموقف، لن يجد المهاجم صعوبة في الاستيلاء على حساب المسؤول، ومن ثم السيطرة على الموقع بأكمله. يوضح الفيديو أدناه مزيجاً من المشكلتين في هذه القضية.
يشير الخبراء إلى أنه لكي يتمكن المهاجم من استخدام هذا الأسلوب بنجاح، يجب أن يكون لديه وصول إلى حساب يملك دور مدير المتجر. ومع ذلك، يرى الباحثون أن تحقيق ذلك ممكن عبر ثغرات XSS أو هجمات التصيد الاحتيالي.
لقد عالج مطورو WooCommerce المشكلة بالفعل من خلال إصدار نسخة جديدة من الإضافة (3.4.6). ولأن التحديث التلقائي للإضافات غير مفعّل على الإطلاق، ينصح الخبراء المستخدمين بالبحث عن التحديثات والتأكد من أنهم يعملون بأحدث إصدارات WooCommerce.