The Membership Plugin – Restrict Content plugin for WordPress is vulnerable to Missing Authentication in all versions up to, and including, 3.2.16 via the 'rcp_stripe_create_setup_intent_for_saved_card' function due to missing capability check. Additionally, the plugin does not check a user-controlled key, which makes it possible for unauthenticated attackers to leak Stripe SetupIntent client_secret values for any membership.
The Membership Plugin – Restrict Content for WordPress (versions up to 3.2.16) contains a critical authentication bypass vulnerability allowing unauthenticated attackers to leak Stripe SetupIntent client_secret values. This vulnerability enables unauthorized access to sensitive payment processing information without proper capability checks. The lack of authentication controls combined with missing validation of user-controlled keys creates a direct pathway for attackers to compromise payment data and membership systems.
IMMEDIATE ACTIONS:
1. Identify all WordPress installations using Membership Plugin – Restrict Content plugin
2. Disable the plugin immediately if version 3.2.16 or earlier is detected
3. Review Stripe account activity logs for suspicious SetupIntent creation or access patterns
4. Notify affected users of potential exposure to Stripe payment secrets
PATCHING:
1. Update plugin to version 3.2.17 or later immediately
2. Verify patch application by checking plugin version in WordPress admin dashboard
3. Test Stripe integration functionality post-update
COMPENSATING CONTROLS (if immediate patching not possible):
1. Implement Web Application Firewall (WAF) rules to block requests to 'rcp_stripe_create_setup_intent_for_saved_card' function
2. Restrict access to WordPress admin and plugin directories via IP whitelisting
3. Implement rate limiting on Stripe API endpoints
4. Monitor and log all Stripe API calls for anomalies
DETECTION:
1. Monitor WordPress logs for POST requests to wp-admin/admin-ajax.php with action=rcp_stripe_create_setup_intent_for_saved_card
2. Alert on any SetupIntent creation from unauthenticated sessions
3. Review Stripe webhook logs for unexpected SetupIntent events
4. Implement IDS/IPS signatures for CVE-2025-14844 exploitation attempts
الإجراءات الفورية:
1. تحديد جميع تثبيتات WordPress التي تستخدم مكون Membership Plugin – Restrict Content
2. تعطيل المكون فوراً إذا تم اكتشاف الإصدار 3.2.16 أو الإصدارات الأقدم
3. مراجعة سجلات نشاط حساب Stripe للبحث عن أنماط إنشاء أو وصول SetupIntent المريبة
4. إخطار المستخدمين المتأثرين بالتعرض المحتمل لأسرار الدفع في Stripe
التصحيح:
1. تحديث المكون إلى الإصدار 3.2.17 أو أحدث فوراً
2. التحقق من تطبيق التصحيح بفحص إصدار المكون في لوحة تحكم WordPress
3. اختبار وظيفة تكامل Stripe بعد التحديث
عناصر التحكم البديلة (إذا لم يكن التصحيح الفوري ممكناً):
1. تنفيذ قواعد جدار حماية تطبيقات الويب (WAF) لحجب الطلبات إلى دالة 'rcp_stripe_create_setup_intent_for_saved_card'
2. تقييد الوصول إلى مجلدات WordPress admin والمكونات الإضافية عبر القائمة البيضاء للعناوين
3. تنفيذ تحديد معدل على نقاط نهاية Stripe API
4. مراقبة وتسجيل جميع استدعاءات Stripe API للكشف عن الشذوذ
الكشف:
1. مراقبة سجلات WordPress للطلبات POST إلى wp-admin/admin-ajax.php مع action=rcp_stripe_create_setup_intent_for_saved_card
2. التنبيه على أي إنشاء SetupIntent من جلسات غير مصرح بها
3. مراجعة سجلات Stripe webhook للأحداث SetupIntent غير المتوقعة
4. تنفيذ توقيعات IDS/IPS لمحاولات استغلال CVE-2025-14844