Skip to main content

WPC Product Options EUVDEUVD-2026-91952

| CVE-2026-97660 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-03 Wordfence GHSA-vgp2-j64f-vf93
7.2
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Reach public guest checkout
  2. Delivery
    Craft wpcpo- multipart field name with payload
  3. Exploit
    Submit order, payload stored in order meta
  4. Execution
    Admin opens order in wp-admin
  5. Impact
    Script executes in admin session

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 that the site runs WPC Product Options for WooCommerce ≤4.0.5 with WooCommerce guest checkout enabled and reachable, so an unauthenticated attacker can submit an order. The payload must be delivered as a multipart/form-data Content-Disposition field name beginning with the 'wpcpo-' prefix, relying on PHP's RFC1867 parser preserving the raw field name; it is stored into order item meta. Execution is deferred and conditional: an authenticated user (realistically a store administrator viewing the order in wp-admin) must open the affected page for the stored script to fire, which bounds real-world impact despite the unauthenticated injection step.

Impact

This is a legitimate priority for any site running the affected plugin, though not a top-tier emergency. The CVSS 7.2 (HIGH) vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N is internally consistent with the description: a network-reachable, low-complexity, unauthenticated flaw whose scope changes (S:C) because the payload stored at guest checkout executes in a different security context - typically the WooCommerce admin's authenticated session when they view the order. The unauthenticated vector (PR:N) via guest checkout is the key risk multiplier, since it removes the usual barrier for stored XSS and makes it exploitable by any anonymous visitor. Mitigating the severity, impact is limited (C:L/I:L/A:N) to script execution in a victim's browser rather than direct server compromise, and execution depends on an authenticated user (most plausibly a store administrator) subsequently opening the poisoned order. No EPSS score was supplied, so exploitation probability cannot be quantified; it is not listed in CISA KEV and no POC is referenced, so there is no evidence of active exploitation or public exploit code. The signals are not conflicting - they align on a real-but-moderate stored-XSS issue. The primary caveat: this was reported by Wordfence and the source code lines are cited, but no independent vendor (WPClever) advisory or confirmed patched version is present in the input, so remediation details should be verified with the vendor.

Exploit ScenarioDerived

An anonymous attacker places a guest-checkout order on a WooCommerce store running the plugin, crafting the multipart form so a Content-Disposition field name begins with 'wpcpo-' and contains a JavaScript payload. PHP's RFC1867 multipart parser preserves the field name byte-for-byte, and the plugin stores it unsanitized into order item meta. When a store administrator later opens that order in wp-admin, the script executes in their authenticated session. No public exploit code is referenced in the available data.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 03, 2026

Stored cross-site scripting in WPC Product Options for WooCommerce 4.0.5 and earlier allows unauthenticated attackers to inject arbitrary JavaScript into WooCommerce order item meta and have it execute in a store administrator's browser session. The injection happens through a guest-checkout path where the malicious payload is placed inside a multipart/form-data Content-Disposition field name prefixed with 'wpcpo-', a technique that bypasses the plugin's sanitization because PHP's RFC1867 parser preserves raw field names byte-for-byte; the script then fires when a privileged user (realistically an admin reviewing the order in wp-admin) opens the affected page. At CVSS 7.2 (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N) and with authentication requirements confirmed as unauthenticated (PR:N) by the vector, the injection step is easy to reach on any shop with guest checkout enabled, but the deferred, victim-triggered execution and the need for an admin to view the poisoned order bound the practical impact; no public exploit code was identified at time of analysis and there is no CISA KEV entry.

RemediationAI

No vendor-published patched version number is confirmed in the available data: the only remediation artifact is an upstream WordPress.org changeset for wpc-product-options (https://plugins.trac.wordpress.org/changeset?reponame=&old=3712354%40wpc-product-options&new=3712354%40wpc-product-options), so treat this as upstream fix available (commit/changeset) with a released patched version not independently confirmed - check the plugin's changelog and update to the first release published after 4.0.5, verifying the class-cart.php escaping fix is present, and consult the Wordfence advisory for vendor guidance. If an update cannot be applied immediately, the highest-value compensating control is to disable guest checkout in WooCommerce (Settings > Accounts & Privacy) or require account creation/login before order submission, which removes the unauthenticated injection path entirely at the cost of conversion friction; alternatively, temporarily deactivate the WPC Product Options plugin if its functionality is non-critical. Restricting administrative access (limiting wp-admin order-viewing to trusted operators, forcing re-authentication, and using a hardened admin session) reduces the chance that a stored payload is ever rendered, though it does not remove the injection. A WAF or reverse-proxy rule that inspects multipart/form-data bodies and rejects or strips Content-Disposition field names beginning with 'wpcpo-' that contain angle brackets or script syntax will block known exploit attempts but is signature-dependent and can be bypassed by encoding variants, so it should be considered a stopgap. Purging existing order item meta for any suspicious 'wpcpo-' keys already stored in wp_postmeta is also advisable, since patching the plugin prevents new injections but does not remove payloads already persisted in the database.

Affected VersionsENISA

WPC Product Options for WooCommerce 0 ≤4.0.5

Affected Packages

euvd wpc_product_options_for_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 flaw is a classic CWE-79 stored cross-site scripting issue rooted in missing input sanitization and missing output escaping in the WooCommerce plugin 'WPC Product Options for WooCommerce' by WPClever (CPE cpe:2.3:a:wpclever:wpc_product_options_for_woocommerce:*:*:*:*:*:*:*:*). The technically interesting element is the delivery vector: instead of injecting through ordinary POST values or order notes, the payload is carried in the name attribute of a multipart/form-data field - specifically a Content-Disposition field name beginning with the plugin's 'wpcpo-' prefix. PHP's RFC1867 multipart parser (the code that populates $_POST and file arrays from multipart bodies) preserves these raw field names without normalizing or rejecting special characters, so characters that would normally be filtered by WordPress's request sanitizers survive intact and are later persisted into order item meta by the plugin's cart handling code (class-cart.php lines referenced in the advisory, including the code paths around lines 336, 537, 573, 579 and 792 in the 4.0.5 tag). Because the data is written to order meta and rendered back into administrative order views without contextual escaping, the injected script executes in the privileged wp-admin context, which is reflected in the CVSS scope change (S:C) - the vulnerable component is the storefront-facing checkout, but the compromised security authority is the administrator's browser session. This makes the bug useful for session-riding, admin-account takeover via CSRF-style requests, or injection of persistent backdoors into the WordPress installation.

Know when Wpc Product Options For 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 7.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 7.2 HIGH

Unauthenticated guest checkout gives PR:N/AV:N/AC:L; stored payload executes in the separate admin context so S:C; XSS yields limited C:L/I:L and no A impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/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
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

The WPC Product Options for WooCommerce plugin for WordPress is vulnerable to Stored Cross-Site Scripting via wpcpo-* Array Key via Multipart Field Name in all versions up to, and including, 4.0.5 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. This is exploitable via guest checkout without authentication because the malicious payload is embedded in a multipart Content-Disposition field name beginning with 'wpcpo-', which PHP's RFC1867 parser preserves byte-for-byte and stores into order item meta.

Executive ViewAI

Why It Matters

WPC Product Options for WooCommerce (versions 4.0.5 and earlier) contains a stored cross-site scripting flaw that allows an unauthenticated visitor to plant malicious code inside WooCommerce order data, which then executes in a store administrator's browser when that order is reviewed. Because the injection path only requires guest checkout to be enabled, virtually any storefront running the plugin is reachable without the attacker holding an account, and the payload is triggered by routine administrative work. The consequence for the organization is exposure of the administrator's authenticated session, order and customer data, and storefront management controls, with no vendor patch currently available.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; no public exploit identified at time of analysis. Interim mitigations: deactivate WPC Product Options for WooCommerce 4.0.5 and earlier, or disable guest checkout to remove the unauthenticated injection path; restrict and monitor wp-admin access; apply a strict Content-Security-Policy on administrative pages; filter or reject multipart/form-data field names prefixed with 'wpcpo-' at the WAF or application layer; audit and clean existing WooCommerce order item meta for injected JavaScript; and track the vendor advisory for a fixed release above 4.0.5.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Medium
popular WPClever WooCommerce add-on, common on stores 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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
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