Skip to main content

WooCommerce PDF Invoices CVE-2026-107750

| EUVDEUVD-2026-114607 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-31 Wordfence GHSA-wr38-p24w-wp68
7.2
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Submit WooCommerce order via public checkout
  2. Exploit
    Inject entity-encoded XSS in billing name/company or customer note
  3. Execution
    Staff/admin opens order invoice or packing-slip document
  4. Impact
    Script executes in authenticated 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

The attacker must be able to submit a WooCommerce order via the public checkout (default behavior for an operational store) running the plugin version 5.16.2 through 5.16.4, where the wp_kses() allow-list was introduced. The specific trigger is an entity-encoded payload (no literal angle brackets, e.g. <img onerror=…>) placed in billing_address.first_name, last_name, company, or the customer_note field; these fields bypass the allow-list because they contain no raw tags and are decoded downstream. Exploitation is limited by the requirement that a privileged user (shop admin/staff) subsequently open the affected order document (PDF invoice, packing slip, or order view) for the script to execute - payloads do not auto-execute without that view. Stores on a version before 5.16.2 (no allow-list) or after the remediated release fall outside this specific entity-encoding bypass.

Impact

The input CVSS is 7.2 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N), driven by network reach, no privileges and no user interaction, with a scope change reflecting that the injected script executes in a different security context (shop staff/admin browser). However, the mechanism described - a stored payload that fires 'whenever a user accesses an injected page' such as a generated PDF invoice or order view - implies a privileged user must open the affected document. That is effectively user interaction (UI:R), which would lower the score to ~6.1; the UI:N in the supplied vector is debatable for this stored-XSS pattern. No CISA KEV entry is present, so this is not confirmed as actively exploited. No EPSS score was provided, so exploitation probability cannot be quantified from the input. No PoC or exploit reference is listed (the references are the Wordfence advisory and plugin source on WordPress.org trac), so there is no public exploit identified at time of analysis. The vuln.today decision label is 'this_week', consistent with a real but non-emergency priority. A notable aggravating factor: this is explicitly an incomplete fix for CVE-2026-92244 - the wp_kses() allow-list added in 5.16.2 blocks raw-tag payloads but is bypassed by entity-encoded payloads, meaning the attack surface is already documented and the bypass is simple, which tends to raise the real likelihood of weaponization. Combined with a widely deployed plugin, this is a genuine this-week patching priority rather than a purely theoretical high-CVSS issue, but it is not emergency-grade given the privileged-view requirement, absent KEV, and missing EPSS.

Exploit ScenarioDerived

An unauthenticated attacker places a WooCommerce order through the public checkout, entering an entity-encoded script payload (e.g., <img onerror=…>) into the billing first/last name, company, or customer-note field. Because the payload contains no literal angle brackets, it passes the wp_kses() allow-list unchanged and is re-materialized on a later decode; when a shop administrator or staff member opens the order's PDF invoice, packing slip, or order view, the script executes in their authenticated session. No public PoC is referenced in the provided 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 31, 2026

Stored cross-site scripting in the WooCommerce PDF Invoices & Packing Slips plugin (versions up to and including 5.16.4) allows an unauthenticated attacker to plant entity-encoded script payloads through the public checkout's billing first name, last name, company and customer note fields, which then execute in a shop staff or administrator's browser when that privileged user opens the generated invoice, packing slip or order document - so the assessed vector requires user interaction (UI:R) despite the input CVSS listing UI:N. The flaw is an incomplete fix for CVE-2026-92244: the wp_kses() allow-list added in 5.16.2 rejects payloads containing literal angle brackets, but entity-encoded payloads such as <img onerror=…> pass through unmodified and are rematerialized when decoded downstream. No public exploit code is confirmed at time of analysis; the vendor fix appears as changeset 3756047 on the plugin trunk, and the vendor advisory is linked from the Wordfence threat-intel record.

RemediationAI

Upstream fix available (commit/changeset); a released patched version is not independently confirmed from the supplied data. The remediation commit is changeset 3756047 on the plugin trunk, which touches includes/Documents/OrderDocument.php (https://plugins.trac.wordpress.org/changeset/3756047/woocommerce-pdf-invoices-packing-slips/trunk/includes/Documents/OrderDocument.php); site operators should update to the first tagged release that includes this changeset rather than relying on the 5.16.2 allow-list, which is precisely what the entity-encoded payloads bypass. The vendor advisory is at https://www.wordfence.com/threat-intel/vulnerabilities/id/9456cd66-d608-49b8-ad4c-fdc89db4cd29?source=cve. No vendor-stated configuration workaround is documented in the available sources, and because the weakness is in the document rendering path itself, restricting who can open order documents (limiting invoice/packing-slip viewing to a small trusted set of staff) only reduces exposure and does not remove the stored payload; the complete fix is applying the patched release. Stores should also confirm they are not remaining on 5.16.2-5.16.4 under the assumption that the earlier allow-list is sufficient.

Affected VersionsENISA

PDF Invoices & Packing Slips for WooCommerce 0 ≤5.16.4

Affected Packages

euvd pdf_invoices_packing_slips_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 affected component is a WordPress/WooCommerce plugin that renders order data into PDF invoices, packing slips and bulk document exports. Order document rendering pulls customer-supplied values from billing_address.first_name, last_name, company and customer_note through code paths in OrderDocument.php, BulkDocument.php, OrderDocumentMethods.php and wpo-ips-functions.php, where the data is processed and later emitted into HTML output. The root cause class is CWE-79 (improper neutralization of input during web page generation): the 5.16.2 remediation introduced a wp_kses() allow-list intended to strip dangerous markup, but wp_kses() operates on decoded tag structure, so an entity-encoded payload containing no literal angle-bracket characters is treated as inert text and passed through; the trailing decode step then recreates the original tag, restoring executable markup. Because the injected script is stored with the order and later rendered in the administrative document view, the impact crosses a trust boundary - reflected in the scope-change component of the assessed vector (S:C) and in the limited confidentiality and integrity impact (C:L/I:L). The trigger requires a privileged recipient to open the document; the payload does not self-execute on the storefront. Exploitation conditions and the exact set of decoded fields are described in the available sources; the specific decoding call chain is referenced only via the trac source links for tag 5.16.3.

Know when 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 6.1 MEDIUM

Unauthenticated order submission gives PR:N, but a staff user must open the order document for the stored script to fire (UI:R); it runs in the admin browser context (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:P/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
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

The PDF Invoices & Packing Slips for WooCommerce plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'billing_address.first_name / last_name / company, customer_note' parameter in all versions up to, and including, 5.16.4 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 an incomplete fix for CVE-2026-92244: the wp_kses() allow-list introduced in 5.16.2 correctly blocks raw-tag payloads but is bypassed by entity-encoded payloads (e.g., <img onerror=…>) that contain no literal angle-bracket characters and are therefore passed through unmodified before the trailing decode rematerializes them.

Executive ViewAI

Why It Matters

The WooCommerce PDF Invoices & Packing Slips plugin (up to 5.16.4) contains a stored cross-site scripting vulnerability that allows attackers to inject malicious scripts via public checkout fields, which then execute in the browsers of shop staff and administrators when they view generated invoices or packing slips. This puts sensitive customer and order data at risk and could lead to unauthorized actions within the WordPress admin. Leadership should prioritize remediation given the high severity and the plugin's role in order processing.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include deploying a WAF rule to block entity-encoded script payloads in checkout fields, restricting access to invoice/packing slip documents to trusted staff, and monitoring for anomalous checkout submissions.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Medium
popular WooCommerce invoicing plugin with a large but WooCommerce-gated install base
Social Media
1
Sightings
Data Quality
4 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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

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.

CVE-2017-17058 HIGH POC
7.5 Nov 29

The WooCommerce plugin through 3.x for WordPress has a Directory Traversal Vulnerability via a /wp-content/plugins/wooco

CVE-2025-13773 CRITICAL POC
9.8 Dec 24

Unauthenticated remote code execution in Print Invoice & Delivery Notes for WooCommerce through 5.8.0 lets remote attack

CVE-2026-18143 CRITICAL POC
9.8 Sep 26

Unauthenticated arbitrary file upload in Addify's Request a Quote for WooCommerce plugin, affecting all versions up to a

CVE-2021-24212 CRITICAL POC
9.8 Apr 05

The WooCommerce Help Scout WordPress plugin before 2.9.1 (https://woocommerce.com/products/woocommerce-help-scout/) allo

CVE-2022-50972 CRITICAL POC
9.3 Jun 20

WooCommerce 7.1.0 contains a remote code execution vulnerability that allows attackers to execute arbitrary PHP code by

CVE-2025-10162 HIGH POC
8.6 Oct 07

Unauthenticated path traversal in OrderConvo (the "Admin and Customer Messages After Order for WooCommerce" plugin), aff

CVE-2026-81649 CRITICAL POC
9.1 Oct 11

Unauthenticated remote attackers can seize control of the payment configuration on WordPress stores running the Fundiin

CVE-2020-35627 HIGH POC
8.8 Dec 28

Ultimate WooCommerce Gift Cards 3.0.2 is affected by a file upload vulnerability in the Custom GiftCard Template that ca

CVE-2026-103307 HIGH POC
8.6 Oct 14

Unauthenticated attackers can exploit the Walletdoc Payment Gateway for WooCommerce plugin before version 1.8.5 to execu

CVE-2026-14962 HIGH POC
8.6 Sep 09

Unauthenticated SQL injection in the ELEX WooCommerce Request a Quote WordPress plugin (all versions before 2.4.1) allow

CVE-2026-92404 HIGH POC
7.5 Sep 19

Unauthenticated, network-reachable attackers can read the WooCommerce API consumer key and secret stored by the MgoSync

CVE-2026-111578 HIGH POC
7.5 Oct 30

Stored cross-site scripting in the PDF Invoices & Packing Slips for WooCommerce plugin (5.16.2 up to, but not including,

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