The WP Captcha PRO (the premium version of the Advanced Google reCAPTCHA plugin, both have the same slug) plugin for WordPress is vulnerable to Authentication Bypass in all versions up to, and including, 5.38. This is due to the ajax_run_tool() AJAX handler relying solely on a nonce check (check_ajax_referer) for security without performing any capability check, combined with the create_temporary_link tool allowing the generation of passwordless login links for arbitrary users, and the handle_temporary_links() function authenticating visitors via these links without any additional authorization validation. The required nonce is exposed to all authenticated backend users (including Subscribers) via wp_localize_script() on all non-settings admin pages when the plugin's welcome pointer has not been dismissed. This makes it possible for authenticated attackers, with Subscriber-level access and above, to bypass normal authentication and log in as any user, including Administrators, resulting in complete account takeover.
WP Captcha PRO plugin contains a critical authentication bypass vulnerability (CVE-2026-5415) affecting all versions up to 5.38. Authenticated users with Subscriber-level access can exploit exposed nonces to generate passwordless login links for arbitrary users, including administrators, leading to complete account takeover. This vulnerability is particularly severe for WordPress installations in Saudi organizations as it requires minimal attacker privileges and no patch is currently available.
IMMEDIATE ACTIONS:
1. Disable the WP Captcha PRO plugin immediately via WordPress admin panel or via FTP/SSH if admin access is compromised
2. Audit all user accounts for unauthorized access, particularly administrator accounts created after plugin installation
3. Review WordPress login logs and audit trails for suspicious passwordless login attempts
4. Force password reset for all administrator and high-privilege accounts
5. Check for unauthorized plugins, themes, or backdoors installed by attackers
DETECTION:
6. Monitor wp-admin/admin-ajax.php requests with action=ajax_run_tool parameter
7. Alert on create_temporary_link tool invocations from non-admin users
8. Monitor handle_temporary_links() function calls and temporary link generation
9. Review wp_localize_script() output for exposed nonce values in admin pages
COMPENSATING CONTROLS (until patch available):
10. Implement Web Application Firewall (WAF) rules to block AJAX requests to ajax_run_tool from non-administrator users
11. Restrict WordPress admin access to specific IP ranges via .htaccess or firewall
12. Implement two-factor authentication (2FA) for all WordPress user accounts
13. Use security plugins (Wordfence, Sucuri) to monitor and block suspicious AJAX activity
14. Implement database activity monitoring for user table modifications
15. Consider removing the plugin entirely if not critical to operations
LONG-TERM:
16. Monitor plugin repository for security updates and patch immediately upon release
17. Implement WordPress security hardening per SAMA CSF and NCA ECC guidelines
18. Conduct security code review of any custom AJAX handlers in other plugins
الإجراءات الفورية:
1. تعطيل مكون WP Captcha PRO فوراً عبر لوحة تحكم WordPress أو عبر FTP/SSH إذا تم اختراق الوصول الإداري
2. تدقيق جميع حسابات المستخدمين للوصول غير المصرح به، خاصة حسابات المسؤول التي تم إنشاؤها بعد تثبيت المكون
3. مراجعة سجلات تسجيل الدخول إلى WordPress وسجلات التدقيق للمحاولات المريبة لتسجيل الدخول بدون كلمة مرور
4. فرض إعادة تعيين كلمة المرور لجميع حسابات المسؤول والحسابات ذات الامتيازات العالية
5. التحقق من المكونات الإضافية غير المصرح بها والمواضيع أو الأبواب الخلفية المثبتة من قبل المهاجمين
الكشف:
6. مراقبة طلبات wp-admin/admin-ajax.php مع معامل action=ajax_run_tool
7. التنبيه على استدعاءات أداة create_temporary_link من المستخدمين غير الإداريين
8. مراقبة استدعاءات دالة handle_temporary_links() وإنشاء الروابط المؤقتة
9. مراجعة مخرجات wp_localize_script() للقيم المكشوفة للرموز في الصفحات الإدارية
الضوابط البديلة (حتى توفر التصحيح):
10. تنفيذ قواعد جدار حماية تطبيقات الويب (WAF) لحظر طلبات AJAX إلى ajax_run_tool من المستخدمين غير الإداريين
11. تقييد وصول WordPress الإداري إلى نطاقات IP محددة عبر .htaccess أو جدار الحماية
12. تنفيذ المصادقة متعددة العوامل (2FA) لجميع حسابات مستخدمي WordPress
13. استخدام مكونات الأمان (Wordfence, Sucuri) لمراقبة وحظر نشاط AJAX المريب
14. تنفيذ مراقبة نشاط قاعدة البيانات لتعديلات جدول المستخدم
15. النظر في إزالة المكون بالكامل إذا لم يكن حرجاً للعمليات
المدى الطويل:
16. مراقبة مستودع المكونات للتحديثات الأمنية والتصحيح الفوري عند الإصدار
17. تنفيذ تقسية أمان WordPress وفقاً لإرشادات SAMA CSF و NCA ECC
18. إجراء مراجعة أمان الكود لأي معالجات AJAX مخصصة في مكونات أخرى