Skip to main content

Post Views Stats Counter CVE-2026-97347

| EUVDEUVD-2026-89682 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-09-30 Wordfence GHSA-qv2m-v72x-35wc
7.2
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send HTTP request with malicious User-Agent
  2. Delivery
    Bypass bot-signature substring blacklist
  3. Exploit
    Payload stored as visit statistic
  4. Execution
    Admin opens stats/dashboard page
  5. Persist
    Script executes in admin origin
  6. Impact
    Steal session or perform admin actions

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitable against any WordPress site with the Post Views Stats Counter plugin (version 1.1.7 or earlier) installed and active; no authentication, user interaction, or non-default configuration is required to inject, since the payload is delivered via the attacker-controlled User-Agent request header. The plugin's only defense is a substring blacklist for bot signatures ('bot', 'spider', 'crawler'), which the attacker bypasses by crafting a User-Agent that avoids those strings. Execution of the stored script is deferred until a user - typically an administrator viewing the recorded statistics page - loads the page rendering the unescaped value, so realized impact depends on an admin/user visiting the affected view.

Impact

The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N, base 7.2) describes a network-reachable, low-complexity, unauthenticated stored XSS with a scope change (S:C reflects script executing in the admin/site origin from attacker-supplied data). The unauthenticated vector is credible because the injection sink is the HTTP User-Agent header, which any visitor controls and the plugin logs without adequate sanitization. No EPSS score, no CISA KEV listing, and no public POC are provided in the input, so exploitation status is 'no public exploit identified at time of analysis' - this is not confirmed active exploitation despite the network/unauth profile. Realistic risk is moderate: the flaw is trivially reachable (the vendor notes the bot-signature blacklist is easily bypassed) but the impact is limited to C:L/I:L (script execution, session/token theft, admin-panel actions) rather than direct server compromise, and the affected plugin has a small footprint. Treat as a genuine but not top-tier priority: patchable web-app XSS in a low-prevalence plugin, higher urgency for any site that actually runs it because triggering requires no authentication.

Exploit ScenarioDerived

An unauthenticated attacker sends an ordinary HTTP request to a site running the plugin, setting the User-Agent header to a malicious JavaScript payload crafted to omit blacklisted bot substrings like 'bot', 'spider', or 'crawler'. The plugin stores the raw User-Agent as visit metadata and later renders it unescaped in the WordPress admin statistics view, so the script executes in the administrator's browser session when they open the stats page. No public exploit code is identified, but the technique is straightforward given the described blacklist-only filtering.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 30, 2026

Stored cross-site scripting in the Post Views Stats Counter WordPress plugin (all versions up to and including 1.1.7) allows unauthenticated remote attackers to inject arbitrary JavaScript into a site by placing a payload in the User-Agent request header, which the plugin records without sanitization and later renders without escaping. The plugin's only defense is a substring blacklist for common bot signatures such as 'bot', 'spider' and 'crawler', which is trivially bypassed by omitting those strings, so any site with the plugin active and reachable is exposed with no authentication, user interaction, or non-default configuration needed for the injection step. Execution of the stored script is deferred until a user - typically an administrator loading the plugin's statistics page - views the affected page; no public exploit code has been identified at time of analysis and the issue is not listed in CISA KEV.

RemediationAI

No vendor-released patch identified at time of analysis: the input data names 1.1.7 as the highest affected version but does not identify a fixed release, so verify the plugin's WordPress.org page and the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/086a8577-eb23-4e05-8ff6-7bbfef62d25c?source=cve for an updated version before assuming a fix is available, and apply it if one appears. If no patched release exists, deactivate and delete the plugin - it is a passive view-counter whose removal is largely cosmetic and eliminates both the storage and the rendering path for the payload. Where removal is not operationally possible, restrict access to the plugin's statistics and admin pages to trusted users, understanding that this only reduces who can trigger execution and does not purge already-stored payloads. A WAF or virtual-patching rule can block or strip script markup, event handlers, and unusual characters from the User-Agent header before it reaches the plugin, at the trade-off that aggressive User-Agent filtering can break legitimate clients with non-standard agent strings, and the plugin's own denylist approach has already been shown to be an unreliable control class. A Content-Security-Policy that disallows inline and untrusted third-party script in the wp-admin origin adds defense in depth against this and similar stored XSS, though it can degrade admin UI functionality if not tuned; note that any mitigation short of removing or patching the plugin leaves attacker-controlled data stored in the database that may execute under other rendering conditions.

Affected VersionsENISA

Post Views Stats Counter 0 ≤1.1.7

Affected Packages

euvd post_views_stats_counter no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

This is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically the stored/persistent XSS subtype, in a WordPress plugin that counts and displays post views. The plugin captures visitor metadata - including the attacker-controlled User-Agent request header - as part of its view-tracking workflow, stores that value, and later writes it back into HTML on the statistics/admin views without output escaping. The affected code paths are visible in the plugin's Trac source at manage/admin.php lines 447 and 681 and wp_pvscounter.php lines 269 and 411 (version 1.1.7), which correspond to the input-handling and rendering locations. The only input filtering described is a substring blacklist for known bot signatures ('bot', 'spider', 'crawler'), a classic denylist approach that is bypassed simply by crafting a User-Agent string that contains none of those substrings - no encoding tricks are even required. The CPE string cpe:2.3:a:kazukiyanamoto:post_views_stats_counter:*:*:*:*:*:*:*:* maps the flaw to the kazukiyanamoto/post_views_stats_counter WordPress plugin namespace and confirms the applicability is version-wide rather than tied to a particular build. The assessed CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N vector reflects a network-reachable, low-complexity injection requiring no privileges (PR:N) and no victim interaction for the injection itself (UI:N); the scope-change rating (S:C) captures the fact that attacker-supplied data recorded in a visitor-facing context later executes as script in the administrative/site origin, with limited confidentiality and integrity impact and no availability impact as scored.

Know when Post Views Stats Counter gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Wordfence) PRIMARY 7.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 7.2 HIGH

Unauthenticated remote injection via User-Agent (AV:N/AC:L/PR:N/UI:N); stored XSS executing in a different security context gives S:C with limited C/I and no availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

The Post Views Stats Counter plugin for WordPress is vulnerable to Stored Cross-Site Scripting via User-Agent Header in all versions up to, and including, 1.1.7 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The plugin's only input filter is a substring blacklist for known bot signatures (e.g. 'bot', 'spider', 'crawler'), which can be trivially bypassed by crafting a User-Agent payload that omits those strings.

Executive ViewAI

Why It Matters

The Post Views Stats Counter WordPress plugin, deployed on organizational websites to track visitor statistics, contains a high-severity stored cross-site scripting flaw (CVE-2026-97347) affecting all versions up to 1.1.7. An attacker can inject malicious scripts that execute when an administrator views the plugin's statistics page, potentially leading to unauthorized access, data theft, or site defacement. Given that exploitation requires no special conditions, leadership should treat this as an urgent risk to website integrity and user trust.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include: disabling or removing the plugin; deploying a web application firewall (WAF) to block malicious User-Agent payloads; restricting access to the plugin's statistics page; and applying custom sanitization to the User-Agent header before storage and rendering.

Threat Intelligence Overview

EPSS Score
0.3%
Top 85% exploitable
Prevalence
Low
niche single-author WordPress stats plugin, small install base
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy