Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious #response fragment URL
-
DeliveryDeliver link to victim via phishing
-
ExploitVictim opens page with Generic Errors unchecked
-
ExecutionReflected payload executes in browser
-
ImpactSteal session tokens or manipulate page
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 | Exploitation requires that the plugin's 'Generic Errors' setting be UNCHECKED (a non-default hardening toggle), which causes getErrorMessage() to return the raw, unsanitized Stripe error string instead of a mapped safe message; without this, the reflected sink is not reachable. The payload is delivered via the '#response' URL fragment on plugin-rendered pages, and because CVSS specifies UI:R, the attack also requires a victim to actively open the attacker-supplied link - it is not a server-side, zero-click flaw. Authentication is not required (CVSS PR:N, unauthenticated attackers). These two limiters - the operator-controlled configuration state and mandatory user interaction - meaningfully narrow realistic exploitation despite the network attack vector. |
| Impact | This is a moderate-severity reflected XSS (CWE-79) with a provided CVSS 3.1 score of 6.1 (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N), meaning network-reachable, no privileges required, but dependent on user interaction and limited to low confidentiality/integrity impact. No EPSS score, no CISA KEV listing, and no public exploit (POC) are present in the provided data, so exploitation status is 'no public exploit identified at time of analysis' - this is NOT a confirmed-exploited emergency. The practical risk is further dampened by a significant precondition the description makes explicit: exploitation only works when the site operator has UNCHECKED the 'Generic Errors' setting, causing getErrorMessage() to return raw Stripe error strings; on default configurations the mapped safe message is substituted and the sink is not reachable. This creates a real tension with the input CVSS AC:L (low complexity), because the dependence on a specific non-default configuration argues for higher attack complexity than the base score reflects. Net assessment: a legitimate but low-to-moderate priority issue - patch in normal cycles - rather than a drop-everything threat, given no exploitation signal and a configuration-gated attack surface. |
| Exploit ScenarioDerived | An attacker crafts a malicious URL for a checkout or payment page containing a JavaScript payload in the '#response' URL fragment and lures a shopper or administrator into clicking it (e.g., via phishing or a malicious link). On a site where 'Generic Errors' is unchecked, the raw Stripe error string is reflected and the script executes in the victim's browser session, enabling session cookie theft, redirection, or UI manipulation. No public proof-of-concept exploit is identified in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 10, 2026
Reflected cross-site scripting (XSS) in the Payment Plugins for Stripe WooCommerce WordPress plugin, affecting all versions up to and including 4.0.17, enables unauthenticated attackers to inject arbitrary web scripts through the '#response' URL fragment when a victim opens a crafted link. Exploitation is further conditional on the plugin's 'Generic Errors' setting being unchecked, which causes raw Stripe error strings to be reflected into the page; there is no public exploit identified at time of analysis and no CISA KEV listing. The vendor-provided CVSS 3.1 score is 6.1 (moderate), and the independent assessment raises attack complexity to High given the required non-default configuration and mandatory user interaction.
RemediationAI
No vendor-released patch version is identified in the available data; however, an upstream fix appears to be available via the plugin Trac changeset 3726506 (https://plugins.trac.wordpress.org/changeset/3726506/woo-stripe-payment/trunk/assets/build/controllers.js), which modifies the affected controllers.js in trunk. Administrators should check the plugin's changelog and update to a release newer than 4.0.17 once available. As a compensating control, ensure the 'Generic Errors' setting remains checked (enabled), because this forces getErrorMessage() to return a mapped safe message instead of the raw Stripe error string, blocking the reflected sink; the trade-off is that users may see less specific error information. Additionally, because exploitation requires user interaction via the '#response' fragment, advise users not to open untrusted links, and consider a web application firewall rule that strips or blocks '#response' fragments on plugin-rendered pages. Review the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/57c64bb5-4849-4166-9792-c079b9cbbc17?source=cve) for further updates.
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 vulnerability is a reflected cross-site scripting (CWE-79: Improper Neutralization of Input During Web Page Generation) in the Payment Plugins for Stripe WooCommerce WordPress plugin, as identified by CPE cpe:2.3:a:paymentplugins:payment_plugins_for_stripe_woocommerce. The plugin integrates Stripe payment processing into WooCommerce and uses client-side JavaScript (e.g., assets/build/controllers.js, utils.js, dom-events.js, gateways.js) to handle Stripe error responses. When the '#response' URL fragment is present, the plugin's JavaScript reads it and injects its content into the page without adequate sanitization or output escaping. By default, the plugin's 'Generic Errors' setting is enabled (checked), which causes getErrorMessage() to return a mapped, safe error message; however, if an operator unchecks this setting, getErrorMessage() returns the raw Stripe error string unchanged, making the DOM sink reachable. The attack requires the victim to click a crafted link, consistent with the CVSS UI:R metric.
Know when Payment Plugins For Stripe Woocommerce 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:R/S:C/C:L/I:L/A:N
Reflected XSS requires a victim click (UI:R) and depends on the non-default 'Generic Errors unchecked' configuration (AC:H); unauthenticated (PR:N) with scope change into the browser and low C/I impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Payment Plugins for Stripe WooCommerce plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via '#response' URL Fragment in all versions up to, and including, 4.0.17 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. Exploitation requires that the 'Generic Errors' setting is unchecked, causing getErrorMessage() to return the raw Stripe error string unchanged rather than substituting a mapped safe message.
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.
Unauthenticated billing data exposure in Payment Plugins for Stripe WooCommerce (versions before 4.0.12) allows any remo
Order fulfillment fraud in the Payment Plugins for Stripe WooCommerce WordPress plugin allows unauthenticated network at
EUVD-2026-96220
GHSA-775r-g6cx-c684
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB