The ARMember Premium plugin for WordPress is vulnerable to SQL Injection via the 'sSortDir_0' parameter of the `get_private_content_data` AJAX action in all versions up to, and including, 7.3.1. This is due to insufficient sanitization of the user-supplied parameter which is concatenated directly into the ORDER BY clause of an SQL query without a whitelist check. This makes it possible for authenticated attackers, with Subscriber-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. Note: The vulnerability can only be exploited if the "User Private Content" addon is enabled, which is disabled by default..
ARMember Premium WordPress plugin versions up to 7.3.1 contain a SQL Injection vulnerability in the 'sSortDir_0' parameter of the get_private_content_data AJAX action. Authenticated attackers with Subscriber-level access can exploit this to extract sensitive database information when the User Private Content addon is enabled. While currently unpatched, the vulnerability requires authentication and addon enablement, reducing immediate risk but requiring urgent monitoring.
Immediate Actions:
1. Audit all WordPress installations using ARMember Premium plugin, specifically checking if User Private Content addon is enabled
2. Review access logs for suspicious AJAX requests to get_private_content_data endpoint with unusual sSortDir_0 parameters
3. Restrict Subscriber-level account creation and audit existing subscriber accounts for unauthorized access
4. Disable the User Private Content addon if not actively required
Compensating Controls:
1. Implement Web Application Firewall (WAF) rules to block SQL injection patterns in sSortDir_0 parameter (block ORDER BY, UNION, SELECT keywords)
2. Apply input validation at application level using whitelist approach (only allow ASC/DESC values)
3. Implement database activity monitoring to detect unusual query patterns
4. Enforce principle of least privilege on database user accounts
5. Enable WordPress security logging and monitor for AJAX endpoint abuse
Patching Guidance:
1. Monitor ARMember official channels for security updates
2. Consider alternative membership plugins with better security track records
3. If patch becomes available, test thoroughly in staging environment before production deployment
Detection Rules:
1. Monitor for POST requests to /wp-admin/admin-ajax.php with action=get_private_content_data
2. Alert on sSortDir_0 parameters containing SQL keywords (UNION, SELECT, OR, AND, etc.)
3. Track database queries with ORDER BY clauses containing unexpected syntax
4. Monitor for multiple failed authentication attempts followed by subscriber account activity
الإجراءات الفورية:
1. تدقيق جميع تثبيتات WordPress التي تستخدم مكون ARMember Premium، والتحقق بشكل خاص من تفعيل إضافة User Private Content
2. مراجعة سجلات الوصول للطلبات المريبة إلى نقطة نهاية AJAX get_private_content_data مع معاملات sSortDir_0 غير العادية
3. تقييد إنشاء حسابات المشترك ومراجعة حسابات المشترك الموجودة للوصول غير المصرح به
4. تعطيل إضافة User Private Content إذا لم تكن مطلوبة بنشاط
الضوابط التعويضية:
1. تطبيق قواعد جدار الحماية لتطبيقات الويب لحظر أنماط حقن SQL في معامل sSortDir_0 (حظر ORDER BY و UNION و SELECT)
2. تطبيق التحقق من الإدخال على مستوى التطبيق باستخدام نهج القائمة البيضاء (السماح فقط بقيم ASC/DESC)
3. تطبيق مراقبة نشاط قاعدة البيانات للكشف عن أنماط الاستعلام غير العادية
4. فرض مبدأ أقل امتياز على حسابات مستخدمي قاعدة البيانات
5. تفعيل تسجيل أمان WordPress ومراقبة إساءة استخدام نقطة نهاية AJAX
إرشادات التصحيح:
1. مراقبة قنوات ARMember الرسمية للتحديثات الأمنية
2. النظر في مكونات العضوية البديلة ذات سجلات الأمان الأفضل
3. إذا أصبح التصحيح متاحاً، اختبره بدقة في بيئة التدريج قبل نشره في الإنتاج
قواعد الكشف:
1. مراقبة طلبات POST إلى /wp-admin/admin-ajax.php مع action=get_private_content_data
2. التنبيه على معاملات sSortDir_0 التي تحتوي على كلمات رئيسية SQL (UNION و SELECT و OR و AND وما إلى ذلك)
3. تتبع استعلامات قاعدة البيانات مع بنود ORDER BY التي تحتوي على بناء جملة غير متوقع
4. مراقبة محاولات المصادقة الفاشلة المتعددة متبوعة بنشاط حساب المشترك