Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend request with crafted X-Forwarded-For header
-
ExploitPayload stored into %%user_ip_address%% token unescaped
-
Executiondo_shortcode() executes injected shortcode at wp_footer
-
ImpactRead data or trigger actions via registered shortcodes
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that a site administrator has added the %%user_ip_address%% token to a Popup Box popup's Custom Content body - without this specific configuration the attacker-controlled header value is never rendered or passed to do_shortcode(), so default installations are not affected. Impact is further limited to shortcodes already registered by the site (the attacker can only invoke existing shortcodes with chosen attributes, not inject arbitrary PHP), and the value of the attack depends entirely on which shortcode-exposing plugins are installed. No authentication or user interaction is needed (PR:N/UI:N), but the dependence on non-default admin configuration is the primary limiting factor and the reason for the high attack complexity. |
| Impact | This is a genuinely limited-severity issue despite the 'RCE/Code Injection' framing, and the signals are internally consistent rather than conflicting. The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N, 4.8 Medium) correctly reflects that although the flaw is network-reachable and unauthenticated (PR:N), successful exploitation carries high complexity (AC:H) because it depends on a specific administrator-side precondition - the %%user_ip_address%% token must have been placed into a popup's Custom Content body - and the impact is bounded to whatever registered shortcodes already exist on the site (hence C:L/I:L and A:N, not a full System compromise). No EPSS score, KEV entry, or public POC is present in the provided data, so exploitation status is 'no public exploit identified at time of analysis.' The 'RCE' tag overstates reality: this is arbitrary registered-shortcode execution with attacker-controlled attributes, not arbitrary OS/PHP code execution, so real-world impact is entirely contingent on which shortcode-exposing plugins are installed. Net assessment: a real but niche, lower-priority issue - patch in routine cycles rather than emergency, prioritizing sites known to use the IP token. |
| Exploit ScenarioDerived | On a site where an administrator has inserted the %%user_ip_address%% token into a Popup Box popup's Custom Content, an unauthenticated attacker sends a normal page request with a crafted X-Forwarded-For (or Client-IP / Forwarded) header containing WordPress shortcode syntax; because sanitize_text_field() does not strip brackets, quotes, spaces, or '=', the payload survives into the popup body and is passed to do_shortcode() at wp_footer, causing the injected shortcode to execute with attacker-supplied attributes. No public exploit code is identified at time of analysis, and the high attack complexity stems from the required administrator configuration. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Arbitrary shortcode execution in the Popup Box plugin for WordPress (ays-pro) versions 6.4.1 through 6.4.2 lets unauthenticated remote attackers invoke any shortcode registered on the site with attacker-chosen attributes, because client-controlled IP-related HTTP headers are folded into a popup body and then run through do_shortcode(). The attack is only reachable when a site administrator has manually inserted the %%user_ip_address%% token into a popup's Custom Content body, so default installations and sites that never use that token are not affected; impact is bounded by the shortcodes already installed (no direct PHP injection), which is why the assessed vector scores only 4.8 with high attack complexity. No public exploit code and no confirmed active exploitation were identified at time of analysis, and the vendor reference points to a fix in 6.4.3.
RemediationAI
Upgrade the Popup Box plugin to version 6.4.3, which is the version referenced by the vendor's fixed-code link (https://plugins.trac.wordpress.org/browser/ays-popup-box/tags/6.4.3/public/class-ays-pb-public.php), and confirm the update completes in the WordPress plugins list - this is the authoritative fix and the preferred action. If upgrading immediately is not possible, the highest-leverage compensating control is to remove the %%user_ip_address%% token from every popup's Custom Content body, since the injected header value is only ever substituted and passed to do_shortcode() when that token is present; audit popups for the token before assuming you are unaffected, and note that removing it changes the popup content that visitors see. A second mitigation is to strip or reject spoofable client IP headers (Client-IP, X-Forwarded-For, Forwarded, X-Forwarded, Forwarded-For) at the edge/reverse proxy so that forged values never reach PHP, but this only helps when the site sits behind infrastructure you control and is unreliable for direct-to-origin traffic. Additionally, review which plugins register shortcodes with side effects (data reads, form actions, remote fetches) and consider disabling or deactivating those shortcode providers on affected sites, accepting the loss of their functionality as a trade-off, because shortcode exposure is what converts this input-handling flaw into a useful attack. There is no vendor workaround documented beyond upgrading, and the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/535c4796-d1aa-4cd1-922e-f9dcf216f76d?source=cve should be monitored for further 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
CWE-94 (Code Injection) in the WordPress Popup Box plugin arises from a chain of unsafe data handling rather than a single missing check. The helper ays_popup_get_user_ip() reads attacker-influenced headers - Client-IP, X-Forwarded-For, Forwarded, X-Forwarded and Forwarded-For - and filters them with sanitize_text_field(), which strips invalid UTF-8 and some tags but deliberately does NOT remove the bracket, quote, space or '=' characters that WordPress shortcode syntax relies on. Ays_Pb_Data::replace_message_variables() then performs a raw str_replace of the %%user_ip_address%% token with that value inside the popup body, and Ays_Pb_Public::ays_autoembed() finally passes the resulting body to do_shortcode() when the popup is rendered on the wp_footer hook. Registered shortcodes are executed with attributes the attacker controls through the injected header text, so a payload of the form [some_shortcode attr="value"] can be smuggled in via a forged header. The CPE cpe:2.3:a:ays-pro:popup_box_-_create_countdown,_coupon,_video,_contact_form_popups identifies the ays-pro Popup Box family; the public rendering class, template partials and data class referenced in the Trac links (class-ays-pb-public.php, ays-pb-public-templates.php, class-ays-pb-data.php) are the exact code paths involved. The dependency on a non-default administrator configuration - the presence of the %%user_ip_address%% token in a popup body - and the restriction to already-registered shortcodes are why the assessed CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N reflects a constrained, site-configuration-dependent issue rather than full remote code execution.
Know when Wordpress Plugin 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:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Unauthenticated network injection (AV:N/PR:N) but AC:H because it depends on a non-default admin-placed token; impact is C:L/I:L bounded to registered shortcodes, A:N.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Popup Box plugin for WordPress is vulnerable to Arbitrary Shortcode Execution in versions 6.4.1 to 6.4.2. This is due to the ays_popup_get_user_ip() function reading the client-controlled Client-IP / X-Forwarded-For / Forwarded / X-Forwarded / Forwarded-For request headers, sanitizing them only with sanitize_text_field() (which does not strip the bracket, quote, space, or '=' characters used by shortcode syntax), substituting the value into a popup body wherever the %%user_ip_address%% token appears (a raw str_replace with no escaping in Ays_Pb_Data::replace_message_variables()), and then passing the resulting body to do_shortcode() in Ays_Pb_Public::ays_autoembed() at output on the wp_footer hook. This makes it possible for unauthenticated attackers to execute arbitrary registered shortcodes with attacker-supplied attributes on the server whenever an administrator has added the %%user_ip_address%% token to a popup's Custom Content body, which can be leveraged to read arbitrary data or perform other actions exposed by shortcodes installed on the site.
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
More in Wordpress Plugin
View allThe Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in
Remote code execution in the WP Query Console WordPress plugin (versions up to and including 1.0) by Ajit Bohra allows u
EUVD-2026-102592
GHSA-5jv4-j9f2-3247
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB