PDF Invoice for WooCommerce + Drag and Drop Template Builder <= 7.1.1 - Unauthenticated PHP Object Injection to Remote Code Execution via 'customer_note' Checkout Field
Strategic Overview
- Status
- Patched in 7.2.0
- Affected Plugin
- PDF Invoice for WooCommerce + Drag and Drop Template Builder
- Affected Version
<= 7.1.1- CVSS
- 9.8Critical
- Weakness type
- CWE-502 · Deserialization of Untrusted Data
- CVE
CVE-2026-109220
At a glance
CVE-2026-109220 is a critical-severity Deserialization of Untrusted Data vulnerability in the PDF Invoice for WooCommerce + Drag and Drop Template Builder WordPress plugin, affecting versions <= 7.1.1. It carries a CVSS score of 9.8 (reachable over the network; low attack complexity; high confidentiality, integrity, availability impact). Exploitation requires no authentication. The issue is fixed in version 7.2.0; sites on affected versions should update now. Disclosed October 2026, reported by Osman Hussein.
Vulnerability Overview
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.
Technical Analysis
The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity, availability — full site compromise territory.
CWE-502: Deserialization of Untrusted Data
PDF Invoice for WooCommerce + Drag and Drop Template Builder <= 7.1.1 carries this weakness at customer_note, and reaching it takes no account at all. Deserialization of untrusted data means the application reconstructs objects from input a caller controls, letting the attacker choose which classes get instantiated and what their properties hold.
A workable chain turns deserialization into file writes, deletions or code execution, depending on what the loaded classes do in their magic methods. For PDF Invoice for WooCommerce + Drag and Drop Template Builder the fix is 7.2.0: builds <= 7.1.1 are affected, anything from 7.2.0 onward is not.
Remediation
Update to version 7.2.0, or a newer patched version
How does WordSec protect against this?
Requests carrying this pattern arrive without a session, so nothing upstream of the firewall gets a chance to reject them: WordSec's web application firewall inspects request payloads before WordPress loads them. Classes like this one can leave something behind, so the staged malware scanner is the second half: it looks for dropped files and modified code rather than for the request that created them. None of that substitutes for the fix: PDF Invoice for WooCommerce + Drag and Drop Template Builder 7.2.0 closes this, and updating the plugin is the step that ends it.
- Firewall
- Scanner
- Login Security
External References
Related records
Same weakness class
Other vulnerabilities in PDF Invoice for WooCommerce + Drag and Drop Template Builder
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C