Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain contributor-level WordPress account
-
DeliveryAuthor page with malicious 'empty' shortcode attribute
-
ExploitStore unsanitized script payload
-
ExecutionHigher-privileged user views injected page
-
ImpactScript executes in victim browser 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 | Requires the PREMIUM/pro edition of the WPComplete plugin (version ≤2.9.9.0) installed and active - the free version is not affected. The attacker must hold an authenticated WordPress account with contributor-level privileges or above (PR:L), and must be able to author/edit content using the vulnerable 'empty' shortcode attribute. Execution is triggered when any user subsequently views the injected page; while CVSS marks UI:N for the attacker, real impact depends on a victim visiting the malicious page. These factors - pro-only scope plus required authenticated contributor access - substantially limit realistic exploitation despite the network attack vector. |
| Impact | This is a moderate, not urgent, priority. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N) reflects a stored XSS reachable over the network with low complexity, but it requires PR:L - an authenticated contributor-level (or higher) account - which meaningfully limits the attacker pool to users who already have a foothold in the WordPress site. The 6.4 score is driven up by S:C (script executes in the context of other users/visitors) while impact remains limited to C:L/I:L. No EPSS score, no CISA KEV listing, and no public POC are present in the provided data, so exploitation status is 'no public exploit identified at time of analysis' - there is no signal of active or automated exploitation. A key limiting factor beyond CVSS is that only the premium/pro edition is affected, further shrinking the exploitable installed base. Net: a legitimate stored-XSS bug worth patching in the normal cycle, but not a high-real-risk emergency given the authentication requirement, pro-only scope, and absence of exploitation signals. |
| Exploit ScenarioDerived | An attacker who has obtained or been granted a contributor-level account on a WordPress site running the premium WPComplete plugin authors a page containing the vulnerable 'empty' shortcode attribute with a malicious payload. Because input is insufficiently sanitized and output not escaped, the script is stored and later executes in the browser of any user - including higher-privileged editors or admins - who views the injected page, enabling session/cookie theft or actions in the victim's context. No public POC is referenced in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 19, 2026
Stored cross-site scripting in the premium (pro) edition of the WPComplete WordPress plugin, affecting all versions up to and including 2.9.9.0, lets an authenticated user with contributor-level access or above inject arbitrary script into the 'empty' shortcode attribute; the payload persists in page content and executes in the browser of anyone who later views that page. The free version of the plugin is not affected, and exploitation requires the paid edition to be installed and active, which materially narrows the exposed population. There is no public exploit code identified at time of analysis and the issue is not confirmed as actively exploited (no CISA KEV listing); this is assessed as a moderate, not urgent, priority given the pro-only scope and the prerequisite of an authenticated contributor account.
RemediationAI
No vendor-released patch version was identified in the available intelligence at time of analysis - the supplied references point to vulnerable source tags (2.9.5.7) rather than a fixed release - so administrators should track the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/5b91bb81-b5e4-4a50-833b-e2e98ccc09ff?source=cve and the plugin's changelog for a corrected build, and upgrade immediately once a version above 2.9.9.0 is published. Until then, the most effective compensating control is to remove the vulnerable shortcode surface: deactivate the WPComplete pro plugin on sites where it is not essential, or otherwise disable the plugin's 'empty' shortcode rendering, accepting the loss of that progress-tracking functionality. Because exploitation requires contributor-level access or above, tighten role assignments by demoting or removing untrusted contributor and author accounts and auditing existing post content for injected shortcode usage (search for the 'empty' attribute across posts and pages) and cleaning any matches, at the cost of extra editorial overhead and potential cleanup of legitimate content. Enforcing a strict content-security policy and running a WordPress hardening or WAF plugin that filters stored XSS in post content can reduce but not eliminate execution, since obfuscated payloads may bypass signature-based filtering. Note that these are mitigations only; the underlying unsanitized output remains until a fixed plugin version is deployed.
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 flaw is a classic CWE-79 improper neutralization of input during web page generation, appearing in the WordPress shortcode handling of the WPComplete plugin. WordPress shortcodes accept user-supplied attributes, and the plugin's public-facing rendering class (referenced in public/class-wpcomplete-public.php around lines 1692, 1802 and 1859, with related logic in includes/class-wpcomplete.php around line 305 of the 2.9.5.7 tag) fails to sanitize the 'empty' attribute on input and to escape it on output, so attacker-controlled markup is written into post content and later rendered unescaped. The CVSS vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N indicates a network-reachable, low-complexity attack from an authenticated low-privileged account, with scope change (the injected script runs in the context of other users and pages, beyond the attacker's own content) but limited confidentiality and integrity impact and no availability impact. The affected component is identified by CPE cpe:2.3:a:stellarwp:wpcomplete:*:*:*:*:*:*:*:*, associating the plugin with vendor StellarWP and indicating that the CPE does not pin a fixed version boundary.
Know when Wpcomplete 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:L/UI:N/S:C/C:L/I:L/A:N
Authenticated contributor injection gives PR:L; stored payload executing in other users' browsers is a scope change (S:C) with limited confidentiality/integrity impact and no availability effect.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The WPComplete plugin for WordPress is vulnerable to Stored Cross-Site Scripting via 'empty' Shortcode Attribute in all versions up to, and including, 2.9.9.0 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This requires the premium version of the software in order to exploit. Please note this only affects the pro version.
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.
More in Wpcomplete
View allUnauthenticated cross-site scripting in the WPComplete WordPress plugin (versions up to and including 2.9.5.6) allows re
Stored cross-site scripting can be planted on WordPress sites running the WPComplete plugin through version 2.9.5.6, bec
EUVD-2026-83465
GHSA-79fj-jcjp-5w4v
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB