Skip to main content

PDF Invoice for WooCommerce EUVDEUVD-2026-114594

| CVE-2026-109220 CRITICAL
Deserialization of Untrusted Data (CWE-502)
2026-10-31 Wordfence GHSA-5f8r-hw67-6cx4
9.8
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Submit anonymous Store API checkout
  2. Delivery
    Embed serialized object in customer_note
  3. Exploit
    Select bank-transfer/cheque payment
  4. Execution
    Order transitions to on-hold
  5. Persist
    Invoice hook calls unserialize()
  6. Impact
    Object injection executes code on server

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitable against a default install, but with concrete prerequisites drawn from the description: the store must have an offline payment gateway enabled that moves orders to 'on-hold' - specifically Direct Bank Transfer (BACS) or cheque - because that status transition is what fires the plugin's invoice-generation hook that reaches unserialize(). The malicious payload must be delivered in the customer_note checkout field via the public Store API checkout endpoint. The key limiting factor beyond this is that object injection converts to code execution only where an exploitable PHP POP gadget chain is loadable in the environment; without a suitable gadget the impact may be limited to object instantiation rather than full RCE. No authentication and no user interaction are required (PR:N/UI:N).

Impact

All exploitability signals point the same direction and are mutually consistent: the CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N) describes a remote, unauthenticated, low-complexity attack with no user interaction, and the description confirms the trigger is reachable on a default install via the public WooCommerce Store API - so this is not a theoretical high-CVSS flaw. The vuln.today Decision label is act_now, and Wordfence (the reporting source) classifies it as a critical PHP Object Injection reaching unserialize(). The one nuance: CWE-502 object injection yields reliable remote code execution only when a usable POP gadget chain is present in the plugin, WordPress core, or another loaded component; the description asserts code execution is possible, but whether a gadget chain ships by default is not demonstrated in the supplied evidence. No EPSS score and no CISA KEV entry are present in the input, so exploitation-probability and active-exploitation data are MISSING rather than negative - absence here does not downgrade priority given act_now plus an unauthenticated network path. Net: treat as a genuine high priority, with the single caveat that worst-case RCE hinges on gadget-chain availability not proven in these sources.

Exploit ScenarioDerived

An unauthenticated attacker submits an anonymous WooCommerce checkout to the public Store API (POST /wc/store/v1/checkout) selecting Direct Bank Transfer or cheque, embedding a serialized PHP object payload in the customer_note field. The order auto-transitions to 'on-hold', firing the plugin's invoice-generation hook, which inlines the note into invoice HTML where mPDF/simplehtmldom reassembles it and passes it to unserialize(), instantiating attacker-controlled objects. No public exploit identified at time of analysis.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
No patch listed yet 0.5% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 31, 2026

Unauthenticated PHP object injection in the PDF Invoice for WooCommerce + Drag and Drop Template Builder plugin (all versions up to and including 7.1.1) lets remote attackers place an anonymous WooCommerce Store API checkout whose customer_note is carried verbatim into the generated invoice HTML and ultimately into unserialize() inside the bundled mPDF library, opening the path to server-side code execution. The described trigger works on a default install only when an offline gateway such as Direct Bank Transfer (BACS) or cheque is enabled, because the resulting 'on-hold' order status is what fires the invoice-generation hook; whether object injection escalates to full code execution depends on an exploitable PHP POP gadget chain being loadable in the target environment. No public exploit code was identified at time of analysis, but the vendor has shipped version 7.2.0 and the priority decision is act_now given the remote, unauthenticated, low-complexity profile reflected in the CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N).

RemediationAI

Upgrade the plugin to version 7.2.0, the fixed release available from WordPress.org at https://downloads.wordpress.org/plugin/pdf-for-woocommerce.7.2.0.zip (vendor advisory: https://www.wordfence.com/threat-intel/vulnerabilities/id/1bc3529c-6161-4b89-8a35-c3a9b7b8c308?source=cve), and confirm the update through the WordPress plugin list before treating the site as remediated. Where the update cannot be applied immediately, remove the exposure described for this flaw: the attack path requires an offline payment gateway that moves an anonymous order to 'on-hold' - specifically Direct Bank Transfer (BACS) or cheque - so disabling those gateways on the store closes the described trigger, at the cost of losing offline payment options for customers; alternatively, stop the invoice generation that fires on that status transition (for example by suspending automatic invoice creation for on-hold orders), which shifts invoicing to a manual process. Note that neither workaround removes the underlying unserialize() flaw, and that even after the code path is reached the outcome depends on the availability of an exploitable PHP POP gadget chain in the hosting environment, so removing unused plugins and PHP libraries reduces residual risk.

Affected VersionsENISA

PDF Invoice for WooCommerce + Drag and Drop Template Builder 0 ≤7.1.1

Affected Packages

euvd pdf_invoice_for_woocommerce_drag_and_drop_template_builder 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 the addonsorg 'pdf-for-woocommerce' WordPress plugin, which builds PDF invoices from WooCommerce order data using the simplehtmldom HTML parser and the mPDF rendering library. The root cause is CWE-502 (Deserialization of Untrusted Data): the customer_note checkout field is not sufficiently sanitized before it is inlined verbatim into invoice HTML; simplehtmldom then entity-decodes the stored text back into a live tag (HtmlDocument.php / HtmlNode.php in the referenced source), mPDF reassembles that content into raw bytes (Mpdf.php around the _getObjAttr handling at line 9105), and the resulting string is passed to unserialize() without validation. Because unserialize() instantiates whatever classes the attacker names in a serialized payload, impact ranges from arbitrary object creation to code execution when a suitable POP gadget chain from the plugin's own dependencies or other active PHP code is available. The entry point is the plugin's frontend and email/shortcode invoice generation path (frontend/index.php, woocommerce/emails/index.php, woocommerce/shortcodes.php in the tagged source), reached through WooCommerce's public Store API checkout endpoint (POST /wc/store/v1/checkout) by an unauthenticated visitor. The CPE cpe:2.3:a:addonsorg:pdf_invoice_for_woocommerce_+_drag_and_drop_template_builder identifies this plugin as the sole affected product; the trigger sequence described by the source does not specify any further exploitation detail beyond the customer_note-to-unserialize chain.

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 CRITICAL
NVD 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 9.8 CRITICAL

Remote unauthenticated checkout on a default install reaches unserialize() with no user interaction (AV:N/AC:L/PR:N/UI:N); object injection to code execution supports full C/I/A impact.

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

Primary rating from Vendor (Wordfence).

CVSS VectorNVD

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

DescriptionNVD

The PDF Invoice for WooCommerce + Drag and Drop Template Builder plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 7.1.1 via the 'customer_note' parameter parameter. This is due to insufficient sanitization of the customer_note checkout field, which is inlined verbatim into invoice HTML, entity-decoded back into a live tag by simplehtmldom, reassembled into raw bytes by mPDF, and passed to unserialize() in _getObjAttr without validation. This makes it possible for unauthenticated attackers to execute code on the server. An unauthenticated attacker can trigger the vulnerable code path on a default install by placing an anonymous WooCommerce checkout via the public Store API (POST /wc/store/v1/checkout) using a Direct Bank Transfer or cheque payment method, which automatically transitions the order to 'on-hold' status and fires the plugin's invoice-generation hook.

Executive ViewAI

Why It Matters

A critical unauthenticated object injection vulnerability in the PDF Invoice for WooCommerce + Drag and Drop Template Builder plugin (versions ≤7.1.1) allows remote attackers to potentially execute server-side code, but only when offline payment methods like Direct Bank Transfer or Cheque are enabled. This puts e-commerce operations at severe risk, as attackers could compromise customer data and disrupt order processing; leadership should prioritize immediate remediation.

Business Impact: Severe
Compensating Controls

Apply vendor patch: update to version 7.2.0. If unable to patch immediately, disable offline payment gateways (e.g., Direct Bank Transfer, Cheque) to prevent the invoice-generation hook from being triggered by unauthenticated attackers.

Threat Intelligence Overview

EPSS Score
0.5%
Top 56% exploitable
Prevalence
Medium
popular WooCommerce invoicing plugin, common but not universal across WordPress sites
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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.5%
Patch available No
Active threat No
Deciding rule
CRITICAL severity
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
Out-of-Cycle
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Very High

Priority Score

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

Attack Technique

Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.

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-2026-112866 CRITICAL POC
9.3 Oct 24

Blind SQL injection in the WBW Product Filter WordPress plugin (woo-product-filter) through 3.4.6 lets remote attackers

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