The Listeo Core plugin for WordPress is vulnerable to unauthenticated arbitrary media upload in all versions up to, and including, 2.0.27 via the "listeo_core_handle_dropped_media" function. This is due to missing authorization and capability checks on the AJAX endpoint handling file uploads. This makes it possible for unauthenticated attackers to upload arbitrary media to the site's media library, without achieving direct code execution.
The Listeo Core WordPress plugin (versions up to 2.0.27) contains an unauthenticated arbitrary file upload vulnerability in its AJAX media handling function. Attackers can upload malicious files to the media library without authentication, potentially enabling subsequent attacks such as code execution through file inclusion or social engineering. While direct code execution is not achieved through the upload alone, this vulnerability significantly lowers the barrier for compromise and should be treated as a critical precursor to more severe attacks.
IMMEDIATE ACTIONS:
1. Disable the Listeo Core plugin immediately until a patched version is available
2. Audit media library for suspicious files uploaded after plugin installation date
3. Review web server logs for POST requests to /wp-admin/admin-ajax.php with 'action=listeo_core_handle_dropped_media' parameter
4. Implement Web Application Firewall (WAF) rules to block requests to the vulnerable AJAX endpoint
COMPENSATING CONTROLS (if plugin cannot be disabled):
1. Restrict AJAX endpoint access via .htaccess or nginx configuration:
- Block all requests to admin-ajax.php with action=listeo_core_handle_dropped_media from non-authenticated users
2. Implement strict file upload validation at web server level (whitelist only safe extensions: jpg, jpeg, png, gif, pdf)
3. Configure WordPress to prevent execution of scripts in upload directories
4. Enable WordPress security plugins (Wordfence, Sucuri) with file integrity monitoring
DETECTION RULES:
1. Monitor for POST requests to /wp-admin/admin-ajax.php?action=listeo_core_handle_dropped_media from unauthenticated sessions
2. Alert on file uploads to wp-content/uploads/ with executable extensions (.php, .php3, .php4, .php5, .phtml, .exe, .sh)
3. Track failed authentication attempts followed by upload attempts
4. Monitor for unusual file types in media library (archives, executables, scripts)
PATCHING:
1. Contact Listeo plugin developers for security update timeline
2. Prepare for immediate patching once version 2.0.28+ is released
3. Maintain plugin update notifications enabled
الإجراءات الفورية:
1. تعطيل مكون Listeo Core فوراً حتى يتوفر إصدار معدل
2. تدقيق مكتبة الوسائط للبحث عن ملفات مريبة تم تحميلها بعد تثبيت المكون
3. مراجعة سجلات خادم الويب للبحث عن طلبات POST إلى /wp-admin/admin-ajax.php مع معامل 'action=listeo_core_handle_dropped_media'
4. تطبيق قواعد جدار حماية تطبيقات الويب (WAF) لحظر الطلبات إلى نقطة AJAX الضعيفة
الضوابط البديلة (إذا لم يكن من الممكن تعطيل المكون):
1. تقييد وصول نقطة AJAX عبر .htaccess أو إعدادات nginx:
- حظر جميع الطلبات إلى admin-ajax.php مع action=listeo_core_handle_dropped_media من المستخدمين غير المصرح لهم
2. تطبيق التحقق الصارم من تحميل الملفات على مستوى خادم الويب (قائمة بيضاء للامتدادات الآمنة فقط: jpg, jpeg, png, gif, pdf)
3. تكوين WordPress لمنع تنفيذ البرامج النصية في مجلدات التحميل
4. تفعيل مكونات أمان WordPress (Wordfence, Sucuri) مع مراقبة سلامة الملفات
قواعد الكشف:
1. مراقبة طلبات POST إلى /wp-admin/admin-ajax.php?action=listeo_core_handle_dropped_media من جلسات غير مصرح لها
2. تنبيهات على تحميل الملفات إلى wp-content/uploads/ بامتدادات قابلة للتنفيذ (.php, .php3, .php4, .php5, .phtml, .exe, .sh)
3. تتبع محاولات المصادقة الفاشلة متبوعة بمحاولات التحميل
4. مراقبة أنواع الملفات غير العادية في مكتبة الوسائط (الأرشيفات والملفات القابلة للتنفيذ والبرامج النصية)