Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister subscriber account
-
DeliverySubmit crafted permalink URL
-
ExploitPlugin fetches attacker remote content
-
ExecutionResponse body written to disk unsanitized
-
PersistVictim loads injected page
-
ImpactScript executes in victim 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 | Requires an authenticated account at subscriber level or above on a WordPress site with the ReactPress - Create React App for WordPress plugin (version ≤3.4.0) installed and active. The attacker must supply a 'permalink' value that survives sanitize_url() (a valid URL) pointing to attacker-controlled remote content; the plugin then fetches that URL and writes the raw response body to disk. Limiting factors: exploitation depends on the plugin being installed, on the attacker holding at least a subscriber account (so sites that disable open registration substantially reduce exposure), and on a victim subsequently visiting the poisoned page for the stored script to execute. |
| Impact | This is a genuine but bounded risk. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N, base 6.4) indicates a network-reachable, low-complexity flaw requiring only authenticated subscriber-level access (PR:L) and no user interaction, with a scope change (S:C) reflecting that injected script executes in the context of any visitor to the poisoned page. No EPSS score, KEV listing, POC flag, or SSVC decision data was supplied in the input, so exploitation-likelihood signals are absent - this is scored on CVSS and the Wordfence technical description alone. The impact is limited to Low confidentiality and Low integrity (session/DOM-level effects typical of stored XSS), with no availability impact. The mechanism is more interesting than a typical reflected XSS: the 'permalink' parameter is only run through sanitize_url(), which does not block fetching an attacker-controlled remote URL, and the response body is written verbatim to disk via file_put_contents() - so this couples a fetch primitive with persistent script storage. Net: a real, patch-worthy issue but not an emergency-tier one - the subscriber-authentication requirement and lack of any confirmed exploitation temper the raw 6.4. No conflicting signals between vector and description were found. |
| Exploit ScenarioDerived | An attacker who has registered a low-privilege subscriber account on a WordPress site running ReactPress ≤3.4.0 submits a crafted 'permalink' value pointing at a remote URL they control. The plugin fetches that URL and writes the response body - containing <script> tags and event-handler attributes - verbatim to disk, so the payload executes in the browser of any user who later loads the affected page. No public exploit was identified at time of analysis, and no user interaction is required for the payload to fire once stored. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 30, 2026
Stored cross-site scripting in ReactPress - Create React App for WordPress 3.4.0 and earlier lets authenticated attackers with subscriber-level access or higher poison pages with arbitrary JavaScript by supplying a crafted permalink. The plugin passes the value through sanitize_url() but then fetches the attacker-controlled remote URL and writes its raw response body to disk with file_put_contents(), so script tags and event handlers are persisted and later served to visitors. The issue has no public exploit identified at time of analysis, is not confirmed actively exploited (CISA KEV), and has a CVSS base score of 6.4 assessed as a genuine but bounded risk.
RemediationAI
No vendor-released patch identified at time of analysis; monitor the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/eaea5a3b-6565-4aa0-864d-5a2b764075fd?source=cve and the plugin's Trac page for a version later than 3.4.0, then upgrade as soon as available. Until a fix is released, the primary compensating control is to deactivate and remove the ReactPress plugin if it is not essential; if the plugin must remain, disable open user registration and remove or restrict subscriber-level accounts so untrusted users cannot supply the permalink value, understanding that this breaks community signup workflows. Additionally, restrict outbound HTTP requests from the WordPress host to only trusted React application URLs and filter fetched response bodies so script tags or event handlers cannot be written to disk, but this may break legitimate remote permalink fetching and requires custom code or egress firewall rules. Where possible, block external network access from the web server to attacker-controlled hosts and use a WAF to detect suspicious permalink values, while recognizing these controls do not fully remediate the stored payload once written.
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
ReactPress is a WordPress plugin that integrates a Create React App front end. The vulnerable code path uses the WordPress sanitize_url() helper on the permalink parameter; sanitize_url() only validates URL syntax and does not prevent the plugin from requesting an arbitrary external URL. The plugin then performs a remote fetch and writes the response body verbatim to disk via file_put_contents(), which is a CWE-79 (improper neutralization of input during web page generation) stored XSS class issue because untrusted remote content is persisted and later rendered without output escaping. The assessed CVSS vector is CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N, reflecting low privileges required (subscriber or above), network attack vector, no special UI condition in the score, scope change, and low confidentiality/integrity impact. The CPE data identifies cpe:2.3:a:rockiger:reactpress_-_create_react_app_for_wordpress:*:*:*:*:*:*:*:* as affected across all versions, with EUVD listing 0 through 3.4.0. Relevant source locations are the plugin's admin/Controller.php, admin/Admin.php, and includes/Core.php per the Trac references.
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:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Network-reachable with only subscriber auth (PR:L), no interaction to store; stored XSS executing in other users' context justifies S:C with Low C/I and no availability impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The ReactPress - Create React App for WordPress plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'permalink' parameter in all versions up to, and including, 3.4.0 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with subscriber-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This is possible because the permalink parameter is only passed through sanitize_url(), which does not prevent fetching attacker-controlled remote URLs whose response body - including script tags and event-handler attributes - is written verbatim to disk via file_put_contents().
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 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 AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint
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
EUVD-2026-89685
GHSA-266f-7ffp-mgv7
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB