
حقن كائنات PHP في Profile Builder < 4.0.1
الباحث: Vivien Lebas
الإضافة المتأثرة: Profile Builder (WordPress)
الإصدارات المتأثرة: < 4.0.1
تم إصلاحها في: 4.0.1
النوع: حقن كائنات PHP (إلغاء تسلسل غير آمن)
CWE: CWE-502
OWASP: A8 – إلغاء تسلسل غير آمن
CVSS 3.1: 6.6 (متوسط) — AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H
WPScan: استشارة موثّقة
لا تتحقق إضافة Import/Export الخاصة بـ Profile Builder من نوع البيانات التي يتم إلغاء تسلسلها عند استيراد ملف إعدادات. لذلك يمكن لمستخدم ذي صلاحيات عالية (مدير) أن يُحدث حقن كائنات PHP عبر استيراد ملف JSON مُصمَّم خصيصًا.
الإضافة هي امتداد مجاني، معطّل افتراضيًا، ولا يتضمن Profile Builder نفسه أي سلسلة POP (Property-Oriented Programming) قابلة للاستخدام. لذا يتطلب الوصول إلى تأثير فعلي وجود gadget مناسب من إضافة أو قالب آخر مثبّت.
توجد الثغرة في ميزة الاستيراد:
/wp-admin/admin.php?page=pbie-import-export&tab=import
تُمرَّر قيمة داخل الملف المستورد إلى دالة maybe_unserialize() الخاصة بـ WordPress
دون أي تحقق من النوع. إذا كانت القيمة عبارة عن سلسلة كائن متسلسل، فإن PHP
تُنشئ نسخة من الصنف المسمّى وتشغّل دواله السحرية (__wakeup،
__destruct) أثناء طلب الاستيراد.
manage_options). في المواقع المتعددة (multisite)، يعتمد الاستيراد
على manage_network، لذا يلزم مدير شبكة/مدير أعلى؛ ويُرفض مدير الموقع الفرعي.Evil كبديل عن أي صنف مماثل توفره
إضافة أو قالب مثبّت. https://victim.example/wp-admin/admin.php?page=pbie-import-export&tab=import
payload.json: {
"options": {},
"posts": {
"wppb-rf-cpt": [
{
"post_title": "POC",
"post_name": "poc",
"post_type": "post",
"post_status": "publish",
"postmeta": {
"poc": ["O:4:\"Evil\":0:{}"]
}
}
]
}
}
payload.json في حقل JSON File واضغط Import.تُمرَّر السلسلة داخل قيمة postmeta إلى maybe_unserialize()، لذا
يتم إنشاء نسخة من الصنف المسمّى وتُشغَّل دواله السحرية أثناء طلب
الاستيراد.
wppb-ul-cpt أو wppb-rf-cpt أو wppb-epf-cpt،
لكن نوع المقالة الذي يُنشأ فعليًا يُؤخذ من حقل post_type الخاص بكل مقالة،
لذا فإن المسار قابل للوصول دون ترخيص Pro.حقن كائنات PHP. مع سلسلة gadget مناسبة من إضافة أو قالب آخر مثبّت، يمكن أن يؤدي ذلك إلى إجراءات مثل عمليات الملفات أو، اعتمادًا على الـ gadgets المتاحة، تنفيذ تعليمات برمجية عن بُعد.
حدّث Profile Builder إلى 4.0.1 أو أحدث.
تم الإفصاح عن هذه الثغرة بمسؤولية إلى المورّد ونُشرت بعد توفّر إصلاح، لأغراض تعليمية ودفاعية.