The Slider Revolution plugin for WordPress is vulnerable to Sensitive Information Disclosure in versions up to and including 7.0.10. This is due to three compounding design flaws: (1) the plugin leaks a valid backend AJAX nonce (revslider_actions) to all authenticated users including Subscribers via the admin_footer hook; (2) the wordpress.create.image_from_url action is explicitly allowlisted in the $user_allowed array, bypassing the administrator-only access control; (3) the create_wordpress_image_from_url() function accepts an attacker-controlled url parameter that is passed to import_media(), where path_or_url_exists() explicitly accepts local filesystem paths (file_exists() && is_readable()) with no restriction to remote HTTP/HTTPS URLs, and @copy() physically copies those files into the publicly accessible /wp-content/uploads/revslider/ai/ directory. The MIME type check trusts the attacker-supplied content_type parameter to derive the destination extension without verifying actual file content, and the source extension blacklist does not block many sensitive types (.sql, .log, .json, .bak, .xml, .csv, .conf, .yml, .yaml, .pem, .key, .crt, .txt, .db, etc.). This makes it possible for authenticated attackers with Subscriber-level access and above to read the contents of server files with non-blacklisted extensions by having them copied to a publicly accessible URL.
Slider Revolution WordPress plugin versions up to 7.0.10 contain a critical information disclosure vulnerability allowing authenticated Subscriber-level users to read arbitrary server files. The vulnerability chains three design flaws: leaked AJAX nonces, bypassed access controls, and unrestricted file copying to public directories. Attackers can exfiltrate sensitive files including database backups, configuration files, and private keys by exploiting the create_wordpress_image_from_url action.
IMMEDIATE ACTIONS:
1. Disable Slider Revolution plugin immediately: wp-cli plugin deactivate slider-revolution or via WordPress admin dashboard
2. Audit WordPress user accounts — identify all Subscriber and above accounts created in past 90 days; review access logs for suspicious activity
3. Check /wp-content/uploads/revslider/ai/ directory for unauthorized files; preserve for forensic analysis before deletion
4. Review web server access logs for requests to /wp-content/uploads/revslider/ai/ with non-image file extensions (.sql, .log, .json, .bak, .conf, .pem, .key, .crt, .txt, .db, .yml, .yaml, .xml, .csv)
5. Rotate all database credentials, API keys, and SSH keys that may have been exposed
6. Scan database backups for unauthorized access timestamps
PATCHING GUIDANCE:
- No official patch available as of CVE publication; monitor Slider Revolution GitHub/website for security updates
- When patch releases, test in staging environment before production deployment
- Consider alternative slider plugins (Elementor, Swiper, Splide) as interim solution
COMPENSATING CONTROLS (until patch available):
1. Restrict WordPress user roles: remove Subscriber accounts not actively needed; audit Contributor/Author accounts
2. Implement Web Application Firewall (WAF) rules to block requests to /wp-content/uploads/revslider/ai/ containing file extensions: .sql, .log, .json, .bak, .conf, .pem, .key, .crt, .txt, .db, .yml, .yaml, .xml, .csv
3. Disable AJAX action 'wordpress.create.image_from_url' via custom code: add_filter('wp_ajax_wordpress.create.image_from_url', '__return_false')
4. Implement file integrity monitoring on /wp-content/uploads/revslider/ directory
5. Restrict file upload permissions: chmod 750 /wp-content/uploads/revslider/
6. Monitor for suspicious admin_footer hook execution via security plugin (Wordfence, Sucuri)
DETECTION RULES:
- Alert on POST requests to /wp-admin/admin-ajax.php?action=wordpress.create.image_from_url
- Monitor for file access to /wp-content/uploads/revslider/ai/ with non-image MIME types
- Log all Subscriber-level user logins and AJAX requests
- Alert on @copy() function calls in WordPress error logs
- Detect requests with 'revslider_actions' nonce parameter in query strings
الإجراءات الفورية:
1. تعطيل مكون Slider Revolution فوراً: wp-cli plugin deactivate slider-revolution أو عبر لوحة تحكم WordPress
2. تدقيق حسابات مستخدمي WordPress — تحديد جميع حسابات المشترك وما فوقها المنشأة في آخر 90 يوماً؛ مراجعة سجلات الوصول للنشاط المريب
3. التحقق من دليل /wp-content/uploads/revslider/ai/ للملفات غير المصرح بها؛ الحفاظ عليها للتحليل الجنائي قبل الحذف
4. مراجعة سجلات وصول خادم الويب للطلبات إلى /wp-content/uploads/revslider/ai/ بامتدادات ملفات غير صورية (.sql, .log, .json, .bak, .conf, .pem, .key, .crt, .txt, .db, .yml, .yaml, .xml, .csv)
5. تدوير جميع بيانات اعتماد قاعدة البيانات ومفاتيح API ومفاتيح SSH التي قد تكون قد تعرضت
6. مسح النسخ الاحتياطية من قاعدة البيانات للوصول غير المصرح به
إرشادات التصحيح:
- لا يوجد تصحيح رسمي متاح اعتباراً من نشر CVE؛ مراقبة موقع Slider Revolution/GitHub لتحديثات الأمان
- عند إصدار التصحيح، اختبر في بيئة التدريج قبل نشر الإنتاج
- فكر في مكونات منزلقة بديلة (Elementor, Swiper, Splide) كحل مؤقت
عناصر التحكم التعويضية (حتى توفر التصحيح):
1. تقييد أدوار مستخدمي WordPress: إزالة حسابات المشترك غير المطلوبة بنشاط؛ تدقيق حسابات المساهم/المؤلف
2. تنفيذ قواعد جدار حماية تطبيقات الويب (WAF) لحظر الطلبات إلى /wp-content/uploads/revslider/ai/ التي تحتوي على امتدادات ملفات: .sql, .log, .json, .bak, .conf, .pem, .key, .crt, .txt, .db, .yml, .yaml, .xml, .csv
3. تعطيل إجراء AJAX 'wordpress.create.image_from_url' عبر الكود المخصص: add_filter('wp_ajax_wordpress.create.image_from_url', '__return_false')
4. تنفيذ مراقبة سلامة الملفات على دليل /wp-content/uploads/revslider/
5. تقييد أذونات تحميل الملفات: chmod 750 /wp-content/uploads/revslider/
6. مراقبة تنفيذ admin_footer hook المريب عبر مكون الأمان (Wordfence, Sucuri)
قواعد الكشف:
- تنبيه على طلبات POST إلى /wp-admin/admin-ajax.php?action=wordpress.create.image_from_url
- مراقبة الوصول إلى الملفات في /wp-content/uploads/revslider/ai/ بأنواع MIME غير صورية
- تسجيل جميع عمليات تسجيل دخول مستخدمي المشترك وطلبات AJAX
- تنبيه على استدعاءات دالة @copy() في سجلات أخطاء WordPress
- كشف الطلبات بمعامل 'revslider_actions' nonce في سلاسل الاستعلام