Skip to main content

WooCommerce Product Filter CVE-2026-88942

| EUVDEUVD-2026-114606 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-31 Wordfence GHSA-gcmh-9x86-4rvc
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 link with malicious wpf_fid payload
  2. Delivery
    Trick store user into clicking
  3. Exploit
    Server reflects unsanitized JSON value
  4. Execution
    Script executes in victim's browser
  5. Impact
    Hijack session or perform site actions

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 Product Filter for WooCommerce by WBW plugin (versions up to and including 3.4.6, including sites that applied the incomplete 3.4.3 patch) be installed and active. The specific trigger is the 'wpf_fid' value read from the JSON-decoded filterSettings payload in the plugin's filter response path, which is never sanitized with absint() (only the separate getVar() read path was fixed), allowing arbitrary script injection that is reflected into the response. No authentication is required (PR:N). The key limiting factor is required user interaction (UI:R): because the flaw is reflected, not stored, an attacker must trick each individual victim into clicking a crafted link or loading a crafted request - there is no persistent, self-propagating payload. Impact is confined to the victim's browser session in the context of the targeted site.

Impact

This is a moderate-severity reflected Cross-Site Scripting flaw (CWE-79), rated CVSS 6.1 with vector AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N. The signals are internally consistent and point to a real-but-not-urgent issue rather than a high-CVSS/low-real-risk mislabel: the attack is network-based and needs no authentication (PR:N), but it is gated by required user interaction (UI:R) and is reflected rather than stored, so each victim must be individually lured - which materially caps mass-exploitation potential. No CISA KEV listing is present in the input, so exploitation status is 'no public exploit identified at time of analysis.' No EPSS score was supplied, so probabilistic exploitation likelihood cannot be quantified from this data. The vuln.today decision label is 'this_month,' which aligns with a reflected XSS that is serious but not an emergency. One notable nuance raises the practical priority: the description states the 3.4.3 patch was incomplete - absint() was applied only to the getVar() read path, leaving the JSON-decoded filterSettings read path unsanitized - so sites that believed they were patched at 3.4.3 remain exposed through 3.4.6. Overall this warrants scheduled remediation within the current cycle, consistent with the 'this_month' label, not immediate emergency patching.

Exploit ScenarioDerived

An unauthenticated attacker crafts a URL (or a form/link that triggers the plugin's filter request) embedding a malicious script in the 'wpf_fid' value within the JSON filterSettings payload. The attacker emails or posts this link to a user of the target WooCommerce store; when the victim clicks it, the unsanitized value is reflected into the page and the script executes in their browser session. No public exploit was identified in the provided data, though the trigger mechanism is well-documented in the Wordfence advisory and the referenced source lines.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 31, 2026

Reflected cross-site scripting in the Product Filter for WooCommerce by WBW WordPress plugin affects every release up to and including 3.4.6, and notably still affects sites that applied the incomplete 3.4.3 patch. The 'wpf_fid' value taken from the JSON-decoded filterSettings payload reaches the plugin's filter response path without absint() sanitization - only the separate getVar() read path was hardened - so an unauthenticated attacker who convinces a victim to click a crafted link can execute arbitrary script in that victim's browser session on the targeted site. Exploitation is per-victim and requires user interaction (UI:R), there is no persistent payload, and no public exploit code or active exploitation has been identified at time of analysis (priority label: this_month, CVSS 6.1).

RemediationAI

The upstream fix is the Trac changeset 3757178 (https://plugins.trac.wordpress.org/changeset/3757178/woo-product-filter/trunk/classes/class-woobewoo-pf-response.php), which modifies classes/class-woobewoo-pf-response.php in trunk; this is an upstream commit rather than a confirmed tagged release, so a patched plugin version should be verified on the WordPress.org plugin page before relying on it. Operators who previously applied the 3.4.3 update must not treat that as remediation - the advisory states the flaw persists in 3.4.3-patched builds - and should update to a build that contains changeset 3757178 once it ships. No vendor-documented workaround appears in the available references, so where the plugin cannot be updated immediately, the only reliable compensating control is deactivating or removing the Product Filter for WooCommerce by WBW plugin, with the trade-off that all layered product filtering and the associated filter UI on WooCommerce shop pages stops working. Restricting or filtering requests that carry filterSettings payloads at the WAF or reverse-proxy layer was not validated by the vendor and would in any case be a partial control against a reflection that depends on tricking an individual user into following a crafted link.

Affected VersionsENISA

Product Filter for WooCommerce by WBW 0 ≤3.4.6

Affected Packages

euvd product_filter_for_woocommerce_by_wbw 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 issue is a classic CWE-79 cross-site scripting flaw inside a WordPress plugin that extends WooCommerce with layered product filtering. The plugin accepts a serialized filterSettings payload, JSON-decodes it, and reads the 'wpf_fid' key for use in building the filter response; that value is reflected into the HTTP response without being cast to an integer, which is where the injected markup or script executes. The referenced source in the plugin's Trac repository points at classes/class-woobewoo-pf-response.php (line 82) and at several spots in modules/woofilters/class-woobewoo-pf-woofilters-controller.php (lines 359, 363, 513 and 739) plus classes/class-woobewoo-pf-frame.php (line 391), showing that the vulnerable read path is distinct from the getVar() path that the earlier 3.4.3 fix covered with absint(). Because the payload is reflected rather than stored, the CVSS scope change (S:C) reflects that script runs with the target site's origin and can act on behalf of the victim within that origin, while the confidentiality and integrity impacts are limited (C:L/I:L) and there is no availability impact. The trigger requires an attacker-supplied request carrying the crafted JSON payload and a victim who follows an attacker-controlled link or loads an attacker-crafted request.

Know when Product Filter For Woocommerce By Wbw 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 6.1 MEDIUM

Unauthenticated network reflected XSS triggered only when a victim clicks a crafted link, so PR:N/UI:R; script execution in the victim's browser crosses the document trust boundary (S:C) with limited C/I and no availability impact.

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

DescriptionCVE.org

The Product Filter for WooCommerce by WBW plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via 'wpf_fid' JSON Parameter in all versions up to, and including, 3.4.6 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a link. The vulnerability persists in versions that received the 3.4.3 patch because absint() was applied only to the getVar() read path, leaving the wpf_fid value read from the JSON-decoded filterSettings payload entirely unsanitized.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Medium
popular WooCommerce filtering plugin, moderate e-commerce store footprint
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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.3%
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.

References

Advisories & patches
ADVISORY https://nvd.nist.gov/vuln/detail/CVE-2026-88942 ADVISORY https://vuldb.com/vuln/429505 REF https://github.com/wpcodefactory/woo-product-filter REF https://plugins.trac.wordpress.org/browser/woo-product-filter/tags/3.4.3/classes/class-woobewoo-pf-frame.php#L391 REF https://plugins.trac.wordpress.org/browser/woo-product-filter/tags/3.4.3/classes/class-woobewoo-pf-response.php#L82 REF https://plugins.trac.wordpress.org/browser/woo-product-filter/tags/3.4.3/modules/woofilters/class-woobewoo-pf-woofilters-controller.php#L359 REF https://plugins.trac.wordpress.org/browser/woo-product-filter/tags/3.4.3/modules/woofilters/class-woobewoo-pf-woofilters-controller.php#L363 REF https://plugins.trac.wordpress.org/browser/woo-product-filter/tags/3.4.3/modules/woofilters/class-woobewoo-pf-woofilters-controller.php#L513 REF https://plugins.trac.wordpress.org/browser/woo-product-filter/tags/3.4.3/modules/woofilters/class-woobewoo-pf-woofilters-controller.php#L739 REF https://plugins.trac.wordpress.org/browser/woo-product-filter/tags/3.4.4/classes/class-woobewoo-pf-frame.php#L391 REF https://plugins.trac.wordpress.org/browser/woo-product-filter/tags/3.4.4/classes/class-woobewoo-pf-response.php#L82 REF https://plugins.trac.wordpress.org/browser/woo-product-filter/tags/3.4.4/modules/woofilters/class-woobewoo-pf-woofilters-controller.php#L359 REF https://plugins.trac.wordpress.org/browser/woo-product-filter/tags/3.4.4/modules/woofilters/class-woobewoo-pf-woofilters-controller.php#L363 REF https://plugins.trac.wordpress.org/browser/woo-product-filter/tags/3.4.4/modules/woofilters/class-woobewoo-pf-woofilters-controller.php#L513 REF https://plugins.trac.wordpress.org/browser/woo-product-filter/tags/3.4.4/modules/woofilters/class-woobewoo-pf-woofilters-controller.php#L739 REF https://plugins.trac.wordpress.org/changeset/3757178/woo-product-filter/trunk/classes/class-woobewoo-pf-response.php REF https://www.wordfence.com/threat-intel/vulnerabilities/id/93f80f84-68b1-4c11-8bc8-19b78e253129?source=cve

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