CVE-2026-109220
The PDF Invoice for WooCommerce + Drag and Drop Template Builder plugin for WordPress is vulnerable…
- Risk score
- 74/100
- CVSS
- 9.8 v3.1
- Published
- 31 Oct 2026
Open in the live forecast Today's forecast
What to know
- What it is
- The PDF Invoice for WooCommerce + Drag and Drop Template Builder plugin for WordPress has a PHP Object Injection vulnerability in all versions up to 7.1.1. An unauthenticated attacker can execute code on the server.
- Affected
- {'products': ['PDF Invoice for WooCommerce + Drag and Drop Template Builder'], 'packages': [], 'versions': ['all up to 7.1.1']}
- Fix
- Check the linked advisory for a fix; upgrade to a safe version
- Exploitation
- No known exploitation
Why it is Amber
- CVSS 9.8 critical
- Remotely exploitable without logging in
- On your watchlist: php
References
- https://downloads.wordpress.org/plugin/pdf-for-woocommerce.7.2.0.zip
- https://plugins.trac.wordpress.org/browser/pdf-for-woocommerce/tags/7.1.1/frontend/index.php#L378
- https://plugins.trac.wordpress.org/browser/pdf-for-woocommerce/tags/7.1.1/libs/HtmlDocument.php#L300
- https://plugins.trac.wordpress.org/browser/pdf-for-woocommerce/tags/7.1.1/libs/HtmlNode.php#L1266
- https://plugins.trac.wordpress.org/browser/pdf-for-woocommerce/tags/7.1.1/vendor/mpdf/mpdf/src/Mpdf.php#L9105
- https://plugins.trac.wordpress.org/browser/pdf-for-woocommerce/tags/7.1.1/woocommerce/emails/index.php#L70
- https://plugins.trac.wordpress.org/browser/pdf-for-woocommerce/tags/7.1.1/woocommerce/shortcodes.php#L708
- https://www.wordfence.com/threat-intel/vulnerabilities/id/1bc3529c-6161-4b89-8a35-c3a9b7b8c308?source=cve
Original description
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.
Last activity 31 Oct 2026. Patch Forecast updates every hour.