Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend forged X-Real-IP HTTP header
-
DeliveryHit nopriv ahcfree_track_visitor AJAX endpoint
-
ExploitPayload stored in database
-
ExecutionAdmin opens statistics dashboard
-
ImpactScript executes in admin browser
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 | No authentication, nonce, or capability is required: the wp_ajax_nopriv_ahcfree_track_visitor endpoint accepts a forged X-Real-IP HTTP header from any unauthenticated request and persists it, so any internet-reachable site running Visitor Traffic Real Time Statistics ≤8.16 is reachable by default. The specific prerequisite is that the plugin's visitor-tracking functionality be active (which is the plugin's core purpose) and that the attacker can set an arbitrary X-Real-IP header - trivial via a direct HTTP request rather than through a trusted reverse proxy. The principal LIMITING factor is deferred execution: the injected payload only fires when a victim (typically a logged-in administrator) subsequently loads the statistics page that renders the stored value, so impact depends on that view occurring and on the client-side DOM handling of the entity-encoded stored data. |
| Impact | This is a genuine prioritization concern driven by access, not by raw impact. The supplied CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N, 7.2 High) shows a fully remote, low-complexity, unauthenticated attack path with a scope change - consistent with the description's explicit claim that the wp_ajax_nopriv_ahcfree_track_visitor endpoint requires no authentication, no nonce, and no capability. The CWE-79 classification and the dedicated vendor code references (Wordfence threat-intel entry plus specific plugins.trac source lines and a patch changeset) corroborate the root cause. However, several exploitation signals are MISSING from the input: there is no EPSS score, no CISA KEV listing, and no POC flag - so this is 'no public exploit identified at time of analysis,' and real-world exploitation probability cannot be quantified from the data given. Note a modeling tension to verify: the description calls this 'Stored DOM-Based XSS' and states the payload is stored 'entity-encoded ... verbatim,' which suggests execution depends on client-side DOM re-parsing of the encoded value rather than raw reflection - the actual firing depends on how the dashboard JS (ahcfree_js_scripts.js) handles the stored value. Impact is also bounded: C:L/I:L/A:N reflects XSS in a browser session rather than direct server compromise. Net: easy to reach and unauthenticated (real priority for WordPress operators), but impact is session-level and active exploitation is unconfirmed. |
| Exploit ScenarioDerived | An unauthenticated attacker sends a single HTTP request to the plugin's nopriv visitor-tracking AJAX endpoint with a forged X-Real-IP header containing a crafted payload, which is stored in the site database. When an administrator or other user later loads the real-time statistics dashboard that renders the stored IP value client-side, the script executes in their authenticated browser context. No public exploit code is identified in the provided data, but the attack needs no authentication and minimal complexity. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 03, 2026
Stored DOM-based cross-site scripting in the WordPress plugin Visitor Traffic Real Time Statistics (all versions up to and including 8.16) allows unauthenticated remote attackers to inject arbitrary web scripts that execute when a victim later loads the plugin's statistics view. The entry point is the plugin's wp_ajax_nopriv_ahcfree_track_visitor AJAX action, which accepts a forged X-Real-IP HTTP header with no authentication, nonce, or capability check and persists the entity-encoded value verbatim in the database; per the CVSS vector (AV:N/AC:L/PR:N/UI:N/S:C) exploitation is network-reachable and requires no privileges or user interaction at injection time. No public exploit code has been identified at time of analysis and the issue is not confirmed actively exploited (no CISA KEV listing), so risk here is driven primarily by the trivial unauthenticated injection path rather than by demonstrated in-the-wild abuse.
RemediationAI
No vendor-announced fixed version is confirmed in the available data; the only remediation artifact is upstream code change in the plugin repository (Trac changeset 3722792 for visitors-traffic-real-time-statistics, https://plugins.trac.wordpress.org/changeset?reponame=&old=3722792%40visitors-traffic-real-time-statistics&new=3722792%40visitors-traffic-real-time-statistics), so treat this as "upstream fix available (commit/changeset); released patched version not independently confirmed" and verify the current plugin release on WordPress.org before upgrading - do not assume 8.17 exists. Until a patched release is validated, the most effective control is to stop untrusted X-Real-IP values from reaching PHP: terminate the header at your edge (nginx/apache/CDN) with a rule that overwrites or drops any client-supplied X-Real-IP and X-Forwarded-For rather than passing it through, which neutralizes the injection vector but must be applied consistently at every ingress path or the plugin can still be reached directly. Site operators who cannot do that should deactivate Visitor Traffic Real Time Statistics outright - the plugin's core function is visitor tracking, so there is no partial "safe mode" - and losing the statistics dashboard is the accepted trade-off; a narrower alternative is a WAF rule that rejects POSTs to /wp-admin/admin-ajax.php with action=ahcfree_track_visitor carrying unexpected X-Real-IP content, though WAF bypass via encoding is common and this is defense-in-depth only. Because the payload executes only when an administrator loads the affected statistics page, also reduce the deferred-execution window by restricting wp-admin access to trusted networks/IP allowlists and by deploying a Content-Security-Policy on wp-admin that disallows inline script, accepting that some plugin UI may break. Rotate administrator sessions and review the plugin's stored visitor table for non-IP content after any suspected exposure. Monitor the Wordfence advisory page above for a confirmed patched version number.
Affected VersionsENISA
Affected Packages
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
The affected component is a WordPress visitor-analytics plugin (CPE cpe:2.3:a:wp-buy:visitor_traffic_real_time_statistics, vendor wp-buy) that logs incoming traffic by reading request metadata - including the client-supplied X-Real-IP header - inside its hit-counting classes (WPHitsCounter.php) and functions.php handlers. Because the AJAX handler is registered with wp_ajax_nopriv_ahcfree_track_visitor, it is explicitly exposed to logged-out visitors, and the traced code paths in functions.php and the plugin's JavaScript (js/ahcfree_js_scripts.js) show the header value being written to the database and subsequently rendered into the administrative statistics page. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically missing input sanitization on ingestion combined with missing output encoding on the client-side DOM sink: the payload is stored entity-encoded, so it survives storage intact and is decoded/inserted into the DOM by the plugin's JavaScript, producing a stored DOM-based XSS rather than a conventional reflected or server-side-echoed one. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N) reflects a scope change: the injected script runs in the context of the privileged statistics page and can act with the victim's browser privileges, although direct confidentiality and integrity impact within the plugin itself is rated Low.
Know when Visitor Traffic Real Time Statistics 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
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
Remote unauthenticated header injection (AV:N/AC:L/PR:N), stored XSS fires without victim action on the vuln component (UI:N), crosses into the admin's browser context (S:C) with session-level C:L/I:L.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Visitor Traffic Real Time Statistics plugin for WordPress is vulnerable to Stored DOM-Based Cross-Site Scripting via 'X-Real-IP' HTTP Header in all versions up to, and including, 8.16 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. This requires no authentication, no nonce, and no capability - the wp_ajax_nopriv_ahcfree_track_visitor endpoint accepts the forged X-Real-IP header from any unauthenticated HTTP request and stores the entity-encoded payload verbatim in the database.
Executive ViewAI
The WordPress plugin Visitor Traffic Real Time Statistics (versions up to and including 8.16) contains a stored cross-site scripting flaw that allows unauthenticated attackers to plant persistent scripts through a public tracking endpoint. Because the payload executes when an administrator or other privileged user views the plugin's statistics page, a successful attack could lead to session theft, unauthorized WordPress actions, or broader site compromise; no public exploit identified at time of analysis, and no vendor-released patch identified at time of analysis. Leadership should treat any WordPress property running this plugin as an elevated risk until it is removed, disabled, or virtually patched.
No vendor-released patch identified at time of analysis. Interim mitigations: deactivate or remove the Visitor Traffic Real Time Statistics plugin for all versions up to and including 8.16; if it must remain, block the wp_ajax_nopriv_ahcfree_track_visitor action at the WAF or reverse proxy, strip or overwrite X-Real-IP headers from untrusted sources, restrict plugin statistics views to trusted administrators, scan and clean stored statistics data for script payloads, and monitor logs for injection attempts.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
The Visitor Traffic Real Time Statistics WordPress plugin before 3.9 does not validate and escape user input passed to t
Low privileged users can use the AJAX action 'cp_plugins_do_button_job_later_callback' in the Visitor Traffic Real Time
The visitors-traffic-real-time-statistics plugin before 1.13 for WordPress has CSRF. Rated high severity (CVSS 8.8), thi
The visitors-traffic-real-time-statistics plugin before 1.12 for WordPress has CSRF in the settings page. Rated high sev
Stored Cross-Site Scripting in Visitor Traffic Real Time Statistics WordPress plugin (≤8.4) allows unauthenticated remot
EUVD-2026-91920
GHSA-4mc8-9rx9-vcjv
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB