CVE-2026-110664
The Premium Packages – Sell Digital Products Securely plugin for WordPress is vulnerable to Stored…
- Risk score
- 41/100
- CVSS
- 6.4 v3.1
- Exploit chance (30 days)
- 0.2%
- Published
- 16 Oct 2026
Open in the live forecast Today's forecast
What to know
- What it is
- The Premium Packages – Sell Digital Products Securely plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'note' parameter in all versions up to, and including, 7.2.8 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with subscriber-le…
- Affected
- See advisory
- Fix
- Apply the vendor's security update; see the linked advisory.
- Exploitation
- No known exploitation
Why it is Yellow
- CVSS 6.4 medium
References
- https://plugins.trac.wordpress.org/browser/wpdm-premium-packages/
- https://plugins.trac.wordpress.org/browser/wpdm-premium-packages/tags/7.2.8/src/Admin/Order/views/order-notes.php#L28
- https://plugins.trac.wordpress.org/browser/wpdm-premium-packages/tags/7.2.8/src/Api/Endpoints/OrderEndpoint.php#L101
- https://plugins.trac.wordpress.org/browser/wpdm-premium-packages/tags/7.2.8/src/Api/Endpoints/OrderEndpoint.php#L501
- https://plugins.trac.wordpress.org/browser/wpdm-premium-packages/tags/7.2.8/src/Order/OrderService.php#L700
- https://plugins.trac.wordpress.org/changeset/3747528/wpdm-premium-packages/trunk/src/Admin/Order/views/order-notes.php
- https://www.wordfence.com/threat-intel/vulnerabilities/id/20042ecf-a8fd-4b36-80d9-d338c8795433?source=cve
Original description
The Premium Packages – Sell Digital Products Securely plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'note' parameter in all versions up to, and including, 7.2.8 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with subscriber-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The exploit bypasses tag-based filtering because the payload is stored as a hex-escaped sequence (e.g., \x3cimg onerror=...\x3e) that sanitize_textarea_field does not strip, and is only decoded back into a live HTML tag by stripcslashes() during admin rendering — after all sanitization has occurred.
Last activity 16 Oct 2026. Patch Forecast updates every hour.