Skip to main content

Premium Packages EUVDEUVD-2026-102786

| CVE-2026-110664 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-16 Wordfence GHSA-5r3f-rfrx-qxp9
6.4
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as subscriber-level user
  2. Delivery
    Submit hex-escaped payload in 'note' parameter
  3. Exploit
    Bypass sanitize_textarea_field storage filtering
  4. Execution
    stripcslashes() decodes payload during admin render
  5. Persist
    Script executes in admin browser session
  6. Impact
    Hijack admin privileges or session

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

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

Exploitation Conditions

Requires an authenticated account with subscriber-level access or above (PR:L). The attacker injects into the 'note' parameter (order notes) a payload encoded as a hex-escaped sequence (e.g., \x3cimg onerror=...\x3e); this specific encoding is required because sanitize_textarea_field() does not strip it and stripcslashes() only decodes it back into a live HTML tag during admin-side rendering of the order-notes view (src/Admin/Order/views/order-notes.php). The principal limiting factor is that the stored payload only executes when a privileged user (typically an administrator) opens the affected order-notes page - so exploitation depends on victim-side viewing - and the attacker must already possess a valid subscriber+ account, limiting impact on sites that disable open registration. Affects all versions up to and including 7.2.8.

Impact

This is a genuine but moderate-priority issue rather than a critical one. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N, base 6.4) shows network-reachable, low-complexity exploitation, but the PR:L requirement means an attacker must first hold a subscriber-level (or higher) account, which meaningfully narrows the attacker pool to sites allowing self-registration or to insiders. The scope change (S:C) and low-value C/I/A reflect a classic stored XSS payoff: code executes in the victim's authenticated browser context (typically an admin viewing order notes) rather than directly compromising the server. No EPSS score, KEV listing, or public POC was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active or widespread exploitation; this is a Wordfence-reported research finding, not an in-the-wild campaign. The novel technical detail - hex-escaped payloads surviving sanitize_textarea_field() and being reconstituted by stripcslashes() during admin rendering - makes the bypass credible and reproducible, but realized impact still depends on an administrator rendering the malicious order note. Net: treat as a routine-to-elevated patch priority for affected sites that permit untrusted registration, not an emergency.

Exploit ScenarioDerived

An attacker registers or uses a subscriber-level account on a store running the plugin and submits an order note containing a hex-escaped payload such as \x3cimg onerror=...\x3e via the 'note' parameter. The sequence stores without being stripped, then fires as live script when an administrator opens the order-notes view, running in the admin's authenticated session. No public exploit code was identified at time of analysis, though the described hex-escape/stripcslashes() bypass is reproducible from the advisory.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 16, 2026

Stored cross-site scripting in the Premium Packages - Sell Digital Products Securely WordPress plugin, affecting all versions up to and including 7.2.8, allows an authenticated attacker with subscriber-level access or above to inject arbitrary script into an order 'note' that executes when a privileged user opens the affected order-notes page in wp-admin. The payload defeats WordPress' sanitize_textarea_field() filtering because it is saved as a hex-escaped sequence such as \x3cimg onerror=...\x3e that is only reconstituted into a live HTML tag by stripcslashes() during admin-side rendering, after sanitization has already run. No public exploit code has been identified at time of analysis, and exploitation is conditional on the victim (typically an administrator) viewing the poisoned notes view, so the practical risk is moderate rather than critical; the vendor has committed an upstream code fix in the plugin's order-notes view.

RemediationAI

The vendor has committed an upstream fix to the order-notes view in changeset 3747528 (https://plugins.trac.wordpress.org/changeset/3747528/wpdm-premium-packages/trunk/src/Admin/Order/views/order-notes.php), so upgrade to the first tagged release that contains this change; a released patched version number is not independently confirmed in the available data, so verify against the plugin's changelog before assuming any specific version is fixed. Until an upgrade can be applied, the most effective compensating control is to eliminate the prerequisite account: disable open WordPress registration and audit accounts so no untrusted subscriber-or-higher users exist, accepting that this breaks legitimate customer self-registration and order tracking for logged-in buyers. Because exploitation requires an administrator to open the poisoned order-notes page, restricting wp-admin access (for example, IP allow-listing or a strong-password/2FA requirement on administrative accounts) reduces the chance of the stored script firing, at the cost of operational flexibility for admins working remotely. Sites that do not need the internal order-note feature can disable or remove that capability at the theme/plugin level, though this sacrifices order communication history. A web application firewall or the Wordfence rule set for CVE-2026-110664 can add virtual patching but should be treated as a stopgap, since the payload is stored data that bypassed native sanitization and may not be caught by signature patterns keyed to raw tags; note that any WAF rule targeting the literal '<img' string will not match the hex-escaped form actually used by this exploit.

Affected VersionsENISA

Premium Packages – Sell Digital Products Securely 0 ≤7.2.8

Affected Packages

euvd premium_packages_sell_digital_products_securely 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 flaw is a CWE-79 (Improper Neutralization of Input During Web Page Generation / stored cross-site scripting) in the WordPress plugin wpdm-premium-packages, whose CPE (cpe:2.3:a:codename065:premium_packages_-_sell_digital_products_securely) covers the affected component. The vulnerable data flow starts in the REST/API layer at src/Api/Endpoints/OrderEndpoint.php (lines 101 and 501) and src/Order/OrderService.php (line 700), where the user-supplied 'note' value for an order is accepted and persisted. WordPress' sanitize_textarea_field() is applied, but that function strips HTML tags and disallowed characters rather than the literal escape sequence backslash-x-hex, so a payload submitted as \x3cimg onerror=...\x3e survives intact. The rendering sink is the order-notes admin view at src/Admin/Order/views/order-notes.php (line 28), which passes the stored value through stripcslashes(), converting the previously harmless escape sequence back into a real <img onerror=...> tag that the browser parses and executes. This sanitize-then-decode ordering error is the root cause class: encoding-based filter bypass, a well-known weakness pattern where the defensive transformation is reversed at output time after the sanitization stage has concluded. Because the CVSS vector is PR:L, the endpoint is reachable by any authenticated user at subscriber level or higher, and the scope change (S:C) reflects that the injected script executes in the administrative browsing context rather than the attacker's own session.

Know when Premium Packages Sell Digital Products Securely 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 6.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 6.4 MEDIUM

Network-reachable 'note' input needs subscriber auth (PR:L); stored XSS executes in a different security context (S:C) yielding limited C/I in the victim's browser and no availability impact.

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

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

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

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Low
niche WordPress commerce plugin for selling digital products, limited install base
Data Quality
5 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy