← Back to search

CVE-2026-109220

9.8 CRITICAL

Published 2026-10-31 · Updated 2026-10-31

AI risk analysis

Summary
The PDF Invoice for WooCommerce plugin suffers from a PHP Object Injection vulnerability (CWE-502) due to unsanitized user input ('customer_note') being processed through HTML parsing and PDF generation libraries that ultimately call unserialize() on attacker-controlled data, enabling unauthenticated remote code execution.
Exploitability
Exploitation is straightforward for unauthenticated attackers: they can trigger the vulnerable code path by submitting a malicious checkout request via the public Store API using any payment method that transitions the order to 'on-hold' status, such as Direct Bank Transfer or cheque.
Blast radius
Successful exploitation would allow full compromise of the affected WordPress site, including server-side code execution, data exfiltration, and potential lateral movement within the hosting environment.
Detection
No reliable host or network indicator is derivable from the published description.
Prioritized remediation
Upgrade to version 7.1.2 or later, where the plugin vendor has patched the unsanitized 'customer_note' handling.
php-object-injectionrcewoocommerceunserializeweb

Analysis generated locally by garnet-coder (no data left the box). AI-assisted — verify against primary sources before acting.

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

CVSS vector

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Weaknesses

CWE-502

All references

Source data: NVD (nvd.nist.gov), public domain. Exploit-DB.ai adds local AI analysis for defensive use only.

Related CVEs

Related by shared AI tags and CWE weakness class. Browse the full archive.