The App Builder – Create Native Android & iOS Apps On The Flight plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 5.5.10. This is due to the `verify_role()` function in `AuthTrails.php` explicitly whitelisting the `wcfm_vendor` role alongside `subscriber` and `customer`, and assigning it directly via `wp_insert_user()` without integrating with WCFM Marketplace's vendor approval workflow. This makes it possible for unauthenticated attackers to register an account with the `wcfm_vendor` role by supplying the `role` parameter in the `/wp-json/app-builder/v1/register` REST API endpoint, bypassing the standard WCFM vendor approval process and immediately gaining vendor-level privileges (product management, order access, store management) on sites where WCFM Marketplace is active.
The App Builder WordPress plugin (versions ≤5.5.10) contains a critical privilege escalation vulnerability allowing unauthenticated attackers to register accounts with vendor-level privileges by bypassing WCFM Marketplace's approval workflow. Attackers can exploit the REST API endpoint to gain immediate access to product management, order processing, and store administration capabilities without proper authorization. This vulnerability poses significant risk to e-commerce platforms operating in Saudi Arabia, particularly those using WCFM for multi-vendor marketplaces.
IMMEDIATE ACTIONS:
1. Disable the App Builder plugin immediately or restrict REST API access to `/wp-json/app-builder/v1/register` endpoint via .htaccess or WAF rules
2. Audit all user accounts created in the past 30 days, particularly those with `wcfm_vendor` role assigned without proper approval workflow
3. Review vendor transaction logs and order access patterns for suspicious activity
4. Reset passwords for all vendor accounts and enforce MFA
PATCHING GUIDANCE:
1. Contact plugin developer for security patch or upgrade to version >5.5.10 when available
2. If patch unavailable, implement custom code to remove `wcfm_vendor` from the whitelist in `verify_role()` function
3. Modify REST endpoint to require WCFM vendor approval before role assignment
COMPENSATING CONTROLS:
1. Implement WAF rule: Block POST requests to `/wp-json/app-builder/v1/register` with `role=wcfm_vendor` parameter
2. Restrict REST API access to authenticated users only via `rest_authentication_errors` filter
3. Implement IP whitelisting for vendor registration endpoints
4. Enable WordPress security logging for user registration and role changes
5. Deploy SIEM monitoring for unusual vendor account creation patterns
DETECTION RULES:
1. Alert on POST requests to `/wp-json/app-builder/v1/register` containing `role` parameter
2. Monitor for `wcfm_vendor` role assignments without corresponding WCFM approval records
3. Track failed WCFM vendor approval attempts followed by successful REST API registrations
4. Flag vendor accounts created outside business hours or from non-Saudi IP ranges
الإجراءات الفورية:
1. تعطيل مكون App Builder فوراً أو تقييد وصول REST API إلى نقطة النهاية `/wp-json/app-builder/v1/register` عبر .htaccess أو قواعد WAF
2. تدقيق جميع حسابات المستخدمين التي تم إنشاؤها في آخر 30 يوماً، خاصة تلك التي تم تعيين دور `wcfm_vendor` لها دون سير عمل موافقة مناسب
3. مراجعة سجلات معاملات البائع وأنماط وصول الطلبات للنشاط المريب
4. إعادة تعيين كلمات المرور لجميع حسابات البائعين وفرض المصادقة متعددة العوامل
إرشادات التصحيح:
1. الاتصال بمطور المكون للحصول على تصحيح أمني أو الترقية إلى إصدار >5.5.10 عند توفره
2. إذا لم يكن التصحيح متاحاً، قم بتنفيذ كود مخصص لإزالة `wcfm_vendor` من قائمة المسموح في دالة `verify_role()`
3. تعديل نقطة النهاية لتتطلب موافقة بائع WCFM قبل تعيين الدور
الضوابط التعويضية:
1. تنفيذ قاعدة WAF: حظر طلبات POST إلى `/wp-json/app-builder/v1/register` مع معامل `role=wcfm_vendor`
2. تقييد وصول REST API للمستخدمين المصرح لهم فقط عبر مرشح `rest_authentication_errors`
3. تنفيذ القائمة البيضاء للعناوين IP لنقاط نهاية تسجيل البائع
4. تفعيل تسجيل أمان WordPress لتسجيل المستخدمين وتغييرات الأدوار
5. نشر مراقبة SIEM لأنماط إنشاء حسابات البائعين غير العادية
قواعد الكشف:
1. تنبيه على طلبات POST إلى `/wp-json/app-builder/v1/register` تحتوي على معامل `role`
2. مراقبة تعيينات دور `wcfm_vendor` دون سجلات موافقة WCFM المقابلة
3. تتبع محاولات الموافقة على بائع WCFM الفاشلة متبوعة بتسجيلات REST API الناجحة
4. وضع علامة على حسابات البائعين التي تم إنشاؤها خارج ساعات العمل أو من نطاقات IP غير السعودية