The Backup Migration plugin for WordPress is vulnerable to Missing Authorization in all versions up to, and including, 2.0.0. This is due to a missing capability check on the 'initializeOfflineAjax' function and lack of proper nonce verification. The endpoint only validates against hardcoded tokens which are publicly exposed in the plugin's JavaScript. This makes it possible for unauthenticated attackers to trigger the backup upload queue processing, potentially causing unexpected backup transfers to configured cloud storage targets and resource exhaustion.
The Backup Migration WordPress plugin (versions ≤2.0.0) contains a critical authorization bypass vulnerability allowing unauthenticated attackers to trigger backup operations via exposed hardcoded tokens. Attackers can initiate unintended backup uploads to cloud storage, causing resource exhaustion and potential data exposure. No patch is currently available, requiring immediate mitigation through plugin disabling or access restrictions.
IMMEDIATE ACTIONS:
1. Disable the Backup Migration plugin immediately via WordPress admin dashboard or remove the plugin directory from wp-content/plugins/
2. Audit cloud storage access logs (AWS S3, Azure Blob, etc.) for unauthorized backup uploads in the past 30 days
3. Review WordPress access logs for POST requests to /wp-admin/admin-ajax.php with action=initializeOfflineAjax
PATCHING GUIDANCE:
1. Monitor the plugin's GitHub repository and WordPress.org plugin page for security updates
2. Do not re-enable the plugin until version 2.0.1 or later is released with proper capability checks and nonce verification
3. If backup functionality is critical, use alternative plugins with verified security audits (e.g., UpdraftPlus, BackWPup with current patches)
COMPENSATING CONTROLS:
1. Implement Web Application Firewall (WAF) rules to block requests to admin-ajax.php with action=initializeOfflineAjax from non-authenticated sources
2. Restrict wp-admin/admin-ajax.php access to authenticated users only via .htaccess or nginx configuration
3. Implement rate limiting on AJAX endpoints to prevent resource exhaustion
4. Enable CloudFront/CDN WAF rules to filter suspicious backup-related requests
5. Configure cloud storage bucket policies to require MFA for backup uploads
DETECTION RULES:
1. Monitor for POST requests to /wp-admin/admin-ajax.php?action=initializeOfflineAjax from non-authenticated IP addresses
2. Alert on unexpected backup uploads to configured cloud storage targets outside normal backup windows
3. Track unusual spike in cloud storage API calls (PutObject, CreateMultipartUpload) from WordPress server
4. Monitor for HTTP 200 responses to initializeOfflineAjax endpoint from unauthenticated sessions
الإجراءات الفورية:
1. تعطيل مكون Backup Migration فورًا عبر لوحة تحكم WordPress أو إزالة دليل المكون من wp-content/plugins/
2. تدقيق سجلات الوصول إلى التخزين السحابي (AWS S3، Azure Blob، إلخ) للتحميلات النسخ الاحتياطية غير المصرح بها في آخر 30 يومًا
3. مراجعة سجلات الوصول إلى WordPress لطلبات POST إلى /wp-admin/admin-ajax.php مع action=initializeOfflineAjax
إرشادات التصحيح:
1. مراقبة مستودع GitHub للمكون وصفحة المكون على WordPress.org للتحديثات الأمنية
2. عدم إعادة تفعيل المكون حتى يتم إصدار الإصدار 2.0.1 أو أحدث مع فحوصات القدرة المناسبة والتحقق من nonce
3. إذا كانت وظيفة النسخ الاحتياطي حرجة، استخدم مكونات بديلة مع تدقيقات أمان موثوقة
الضوابط التعويضية:
1. تنفيذ قواعد جدار حماية تطبيقات الويب (WAF) لحظر الطلبات إلى admin-ajax.php مع action=initializeOfflineAjax من مصادر غير مصرح بها
2. تقييد الوصول إلى wp-admin/admin-ajax.php للمستخدمين المصرح لهم فقط عبر .htaccess أو إعدادات nginx
3. تنفيذ تحديد معدل على نقاط نهاية AJAX لمنع استنزاف الموارد
4. تفعيل قواعد WAF CloudFront/CDN لتصفية الطلبات المريبة المتعلقة بالنسخ الاحتياطية
5. تكوين سياسات دلو التخزين السحابي لتتطلب MFA لتحميلات النسخ الاحتياطية
قواعد الكشف:
1. مراقبة طلبات POST إلى /wp-admin/admin-ajax.php?action=initializeOfflineAjax من عناوين IP غير مصرح بها
2. التنبيه على تحميلات النسخ الاحتياطية غير المتوقعة إلى أهداف التخزين السحابي المكونة خارج نوافذ النسخ الاحتياطية العادية
3. تتبع الارتفاع غير المعتاد في استدعاءات API التخزين السحابي من خادم WordPress
4. مراقبة استجابات HTTP 200 لنقطة نهاية initializeOfflineAjax من جلسات غير مصرح بها