The Demo Importer Plus plugin for WordPress is vulnerable to XML External Entity Injection (XXE) in all versions up to, and including, 2.0.9 via the SVG file upload functionality. This makes it possible for authenticated attackers, with Author-level access and above, to achieve code execution in vulnerable configurations. This only impacts sites on versions of PHP older than 8.0.
The Demo Importer Plus WordPress plugin versions up to 2.0.9 contains an XML External Entity (XXE) injection vulnerability in SVG file upload functionality, allowing authenticated attackers with Author-level access to execute arbitrary code on vulnerable PHP versions below 8.0. This vulnerability poses a significant risk to WordPress installations in Saudi Arabia that rely on this plugin for demo content management. Immediate patching is critical for organizations using older PHP versions.
IMMEDIATE ACTIONS:
1. Identify all WordPress installations using Demo Importer Plus plugin by checking wp-content/plugins directory and WordPress admin plugin list
2. Check PHP version on all affected servers (run: php -v)
3. Restrict Author-level access to trusted users only via WordPress user role management
4. Disable SVG file uploads temporarily if plugin is not actively in use
PATCHING GUIDANCE:
1. Update Demo Importer Plus plugin to version 2.1.0 or later immediately
2. Upgrade PHP to version 8.0 or higher on all servers (8.2+ recommended)
3. If immediate PHP upgrade is not possible, apply XXE protection via php.ini: set libxml_disable_entity_loader to true
COMPENSATING CONTROLS:
1. Implement Web Application Firewall (WAF) rules to detect and block XXE payloads in file uploads
2. Restrict file upload functionality to administrators only
3. Implement strict file type validation for SVG uploads
4. Monitor WordPress error logs for XXE-related errors
DETECTION RULES:
1. Monitor wp-admin/upload.php for SVG file uploads from Author-level accounts
2. Alert on PHP execution attempts within wp-content/uploads directory
3. Log all plugin updates and version changes
4. Monitor for XML parsing errors in PHP error logs
الإجراءات الفورية:
1. تحديد جميع تثبيتات WordPress التي تستخدم مكون Demo Importer Plus بالتحقق من wp-content/plugins وقائمة المكونات في لوحة تحكم WordPress
2. التحقق من إصدار PHP على جميع الخوادم المتأثرة (تشغيل: php -v)
3. تقييد الوصول على مستوى المؤلف للمستخدمين الموثوقين فقط عبر إدارة أدوار مستخدمي WordPress
4. تعطيل تحميل ملفات SVG مؤقتاً إذا لم يكن المكون قيد الاستخدام النشط
إرشادات التصحيح:
1. تحديث مكون Demo Importer Plus إلى الإصدار 2.1.0 أو أحدث فوراً
2. ترقية PHP إلى الإصدار 8.0 أو أحدث على جميع الخوادم (يُنصح بـ 8.2+)
3. إذا لم يكن من الممكن ترقية PHP فوراً، طبق حماية XXE عبر php.ini: اضبط libxml_disable_entity_loader على true
الضوابط البديلة:
1. تطبيق قواعد جدار حماية تطبيقات الويب (WAF) للكشف عن حمولات XXE وحجبها في التحميلات
2. تقييد وظيفة تحميل الملفات للمسؤولين فقط
3. تطبيق التحقق الصارم من نوع الملف لتحميلات SVG
4. مراقبة سجلات أخطاء WordPress لأخطاء XXE
قواعد الكشف:
1. مراقبة wp-admin/upload.php لتحميلات ملفات SVG من حسابات على مستوى المؤلف
2. تنبيه محاولات تنفيذ PHP داخل دليل wp-content/uploads
3. تسجيل جميع تحديثات المكونات وتغييرات الإصدار
4. مراقبة أخطاء تحليل XML في سجلات أخطاء PHP