feat(cves): add CVE-2025-5947 - Service Finder Bookings Auth Bypass#15656
Conversation
Add detection template for critical authentication bypass vulnerability in the Service Finder Bookings WordPress plugin (<= 6.0). The service_finder_switch_back() AJAX action fails to validate the original_user_id cookie, allowing unauthenticated attackers to impersonate any user including administrators. Actively exploited in the wild with 13,800+ attempts recorded by Wordfence on disclosure day. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Neo - Nuclei Template ReviewNo security issues found 3 issues fixed in this PR Hardening Notes
Comment |
- Use regex on Location header instead of broad word match to prevent false positives from other headers (Cookie, Referer, etc.) - Add wordpress_logged_in_ cookie matcher to confirm session was actually created, not just a redirect occurred
|
Hi @DhiyaneshGeek, Thanks for the review via Neo. Here's a quick update on the findings: Fixed:
Pending:
Let me know if any further changes are needed! |
|
Hi @sedat4ras, Thank you so much for sharing this template with the community and contributing to this project 🍻 We tried to reproduce the POC, but it didn't work on our end. If you believe the template is correct, please send a vulnerable lab environment to templates@projectdiscovery.io. |
|
Hi @theamanrawat, Thanks for testing! I think I found why reproduction failed. Root cause: The So the Proposed fix: Remove the Would you like me to push this change? Happy to update the template if this aligns with your assessment. |
The Set-Cookie matcher was causing false negatives. In this auth bypass, the exploit triggers a redirect to /wp-admin/ without setting a new session cookie. Relying solely on the Location header redirect is the correct signal. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
PR Information
Vulnerability Summary
The
service_finder_switch_back()AJAX action in the Service Finder Bookings plugin fails to validate theoriginal_user_idcookie before switching user context. An unauthenticated attacker can setCookie: original_user_id=1and call the action to gain admin-level access.Template Logic
readme.txtGET /wp-admin/admin-ajax.php?action=service_finder_switch_backwithCookie: original_user_id=1wp-admin(notwp-login.php) indicating successful user context switchTemplate validation
Additional Details
http.html:"sf-booking"/wp-content/plugins/sf-booking/