Skip to main content

Stripe WooCommerce EUVDEUVD-2026-96220

| CVE-2026-89100 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-10 Wordfence GHSA-775r-g6cx-c684
6.1
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malicious #response fragment URL
  2. Delivery
    Deliver link to victim via phishing
  3. Exploit
    Victim opens page with Generic Errors unchecked
  4. Execution
    Reflected payload executes in browser
  5. Impact
    Steal 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Payment Plugins for Stripe WooCommerce 0 ≤4.0.17

Affected Packages

euvd payment_plugins_for_stripe_woocommerce no fix

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

Vendor (Wordfence) PRIMARY 6.1 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 4.7 MEDIUM

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.

3.1 AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:A/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

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

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Medium
popular WooCommerce Stripe payment plugin, common but not universal
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy