Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend HTTP request with scripted REQUEST_URI
-
DeliveryPayload stored in traffic log path field
-
ExploitAdministrator opens Traffic log viewer
-
ExecutionDataTables renders hidden path via innerHTML
-
ImpactScript executes in admin session context
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 | Injection requires the plugin's traffic/activity logging to be enabled so that REQUEST_URI is captured and persisted - with logging active, the injection itself needs no authentication and no further special configuration. Execution of the stored payload requires an authenticated administrator to subsequently open the plugin's Traffic log viewer page, where the hidden 'path' column is constructed by DataTables via innerHTML because ForTraffic.php lacks a client-side render function; the partial fix in 18.5.8 added esc_html() only to the visible 'page' column, leaving 'path' exploitable through 22.3.2. Limiting factors: traffic logging must be on, an admin must view the traffic table, and the site must run an affected version (≤22.3.2; fixed in 22.3.4 per the vendor changeset). |
| Impact | The published CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N, base 7.2) frames this as a network-reachable, low-complexity, unauthenticated stored XSS with scope change and limited confidentiality/integrity impact. The injection step is genuinely trivial: any unauthenticated attacker can place a payload into the stored traffic log simply by sending a request whose REQUEST_URI contains script. However, the description establishes a real limiting factor that the CVSS UI:N metric understates - the payload only executes when the plugin's traffic logging is active AND an authenticated administrator later opens the Traffic log viewer, where the hidden 'path' column is rendered through DataTables' innerHTML. This makes realistic exploitation opportunistic rather than guaranteed. On the decision signals: the input carries no EPSS score and no CISA KEV listing, so there is no evidence of active or widespread exploitation; the vuln.today Decision label is 'this_week' (elevated, not emergency). No public exploit or PoC reference is present in the input (only the Wordfence advisory and vendor source-code links). Net assessment: a credible, easily-triggered injection whose impact is gated on admin viewing behavior - a legitimate patch-this-week item, not a drop-everything emergency, and not merely a high-CVSS/low-real-risk issue given the unauthenticated injection and admin-session impact. EPSS is absent and should be checked to refine prioritization. |
| Exploit ScenarioDerived | An unauthenticated attacker sends an HTTP request to the WordPress site whose URL path contains a JavaScript payload; the Shield Security traffic logger records the REQUEST_URI and stores it. Later, when a site administrator opens the plugin's Traffic log viewer, the hidden 'path' column is built via DataTables innerHTML with no escaping, so the stored HTML is parsed into live DOM nodes and the script runs in the administrator's authenticated browser session. No public exploit code is identified in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 31, 2026
Stored cross-site scripting in the Shield Security WordPress plugin (wp-simple-firewall) affects every version up to and including 22.3.2 and lets unauthenticated remote attackers inject arbitrary HTML/JavaScript into the plugin's traffic log through the logged REQUEST_URI value. The plugin records that value without adequate sanitization and later renders it into the hidden 'path' column of the Traffic table via DataTables innerHTML, so the payload is parsed into live DOM nodes and executes when an administrator opens the Traffic log viewer. Successful abuse is bounded by two conditions: the plugin's traffic/activity logging must be enabled so REQUEST_URI is captured and persisted, and an admin must subsequently view the traffic table; the issue was only partially addressed in 18.5.8, where esc_html() was applied to the visible 'page' column but not to 'path'. Exploitation status: no public exploit identified at time of analysis, and the vendor changeset identifies 22.3.4 as the fixed release.
RemediationAI
Vendor-released patch: upgrade the Shield Security plugin to version 22.3.4 or later, which is the release identified by the vendor changeset (https://plugins.trac.wordpress.org/changeset?reponame=&new=3769612%40wp-simple-firewall%2Ftags%2F22.3.4&old=3768418%40wp-simple-firewall%2Ftags%2F22.3.2) as the fix for the unescaped hidden 'path' column in ForTraffic.php; the 18.5.8 esc_html() change did not cover this field and is not sufficient. Until the update is applied, the exposure is reduced only by removing the necessary precondition described in the available analysis: the injection is only possible when the plugin's traffic/activity logging is enabled and actively capturing and persisting REQUEST_URI, so disabling that logging suppresses the sink, at the cost of losing the plugin's request/traffic visibility for the site. Note also that stored payloads already written while logging was active must be cleared, and that viewing the Traffic log table is what triggers execution in an administrator's browser, so administrators should avoid opening that page on unpatched, logging-enabled installations. Refer to the Wordfence advisory for the vendor's guidance.
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 PHP-based WordPress plugin, Shield Security (slug wp-simple-firewall), which maintains its own request metadata logging and admin-side tables. Per the referenced source, RequestMetaProcessor.php captures request metadata including REQUEST_URI, BuildTrafficTableData.php assembles the row data (including the raw path value) for the Traffic table, and ForTraffic.php defines the DataTables column layout. The root cause is CWE-79 (improper neutralization of input during web page generation) manifesting as a stored, server-persisted XSS: the hidden 'path' column has no client-side render function, so DataTables constructs that cell using innerHTML rather than a text-safe renderer, causing stored HTML in the path value to be parsed into live DOM nodes in the administrator's browser. A prior hardening pass in version 18.5.8 applied esc_html() only to the visible 'page' column, leaving the 'path' field unescaped and exploitable through 22.3.2. The assessed vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N (7.2) reflects a network-reachable, low-complexity flaw with no attacker-side privileges required, scope change because the script runs in the privileged admin context of the WordPress dashboard, and limited confidentiality and integrity impact; the trigger path described in the available sources requires the plugin's traffic logging to be active and an authenticated administrator to open the Traffic log viewer, where the injected markup executes.
Know when PHP 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
Unauthenticated injection via logged REQUEST_URI (PR:N, AC:L, AV:N); stored XSS executes in the admin's browser, a changed security context (S:C), with limited confidentiality and integrity impact and no availability impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Shield Security - Smart Bot Blocking, Brute-Force Login Protection & File Scanning plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'REQUEST_URI' parameter in all versions up to, and including, 22.3.2 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 hidden 'path' column in ForTraffic.php lacks a client-side render function, so DataTables builds its cell via innerHTML, causing stored HTML in the path value to be parsed into live DOM nodes; a prior partial fix in version 18.5.8 added esc_html() only to the visible 'page' column, leaving the hidden 'path' field unescaped and exploitable through version 22.2.6.
Executive ViewAI
A high-severity stored cross-site scripting vulnerability in the Shield Security WordPress plugin (up to version 22.3.2) enables unauthenticated attackers to inject malicious scripts into the traffic log. When an administrator views the log, the script executes, potentially leading to session hijacking, data theft, or full site compromise. This poses a significant risk to organizations relying on this plugin for website security, as it can undermine the very protection it provides and affect site integrity and user trust.
Disable the plugin's traffic/activity logging to prevent REQUEST_URI capture; restrict administrator access to the Traffic log viewer; deploy a WAF with rules to block XSS patterns in request URIs; monitor for suspicious admin account activity.
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.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
EUVD-2026-114648
GHSA-832v-j8jj-hrq5
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB