Skip to main content

Printcart Store EUVDEUVD-2026-100765

| CVE-2026-93388 CRITICAL
Unrestricted Upload of File with Dangerous Type (CWE-434)
2026-10-14 Wordfence GHSA-p5c5-938c-g6r5
9.8
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Fetch nonce from nbd_check_use_logged_in
  2. Delivery
    Call nopriv nbdesigner_copy_image_from_url AJAX
  3. Exploit
    Supply malicious gapi[name] .php filename
  4. Execution
    Write PHP into uploads/nbdesigner/temp
  5. Impact
    Request webshell to execute code

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V5 - File Handling File type validation, storage isolation
MITRE ATT&CK

2 techniques across 2 tactics: Command and Control, Persistence

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

Exploitation Conditions

Requires only that the Printcart Store (PCDesigner / NB Designer) plugin version ≤2.9.1 be installed and active; exploitation specifically invokes the Google Drive branch of the nbdesigner_copy_image_from_url AJAX action, where the attacker must supply gapi[name] (the raw attacker-controlled filename, e.g. ending in .php) along with their own Google Drive file and OAuth token as the fetched content source. No authentication is needed (PR:N) and the save-design nonce is freely issued by nbd_check_use_logged_in, so that is not a barrier. The practical limiting factor is that the uploads/nbdesigner/temp/ directory must actually execute PHP when requested - default on typical Apache/mod_php stacks but blocked where the uploads directory has PHP execution disabled or is served by a hardened configuration; the attacker must also control a reachable Google Drive file and a valid OAuth token for the content fetch.

Impact

All provided signals point to a genuine high-priority flaw. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N) describes an unauthenticated, network-reachable, low-complexity attack with full C:H/I:H/A:H impact, consistent with the described unauthenticated arbitrary-file-upload-to-RCE chain - the metrics and the technical narrative agree, which is reassuring. The chain is also self-contained: the required save-design nonce is dispensed to anonymous callers by nbd_check_use_logged_in, so the usual nonce barrier is neutralized, reinforcing the PR:N rating. However, several decision signals are MISSING from the input: no EPSS exploitation-probability score is provided, there is no CISA KEV entry, and no POC/exploit-code availability is indicated, nor is an SSVC decision record supplied - so automatability and in-the-wild status cannot be confirmed from this data. The one tempering factor is deployment footprint: this is a niche WooCommerce web-to-print plugin, so despite the 9.8 score the realistic blast radius is far smaller than a comparable flaw in a ubiquitous component. Net: treat as a real, patch-now issue for any site running the plugin (unauthenticated RCE in WordPress plugins is routinely mass-scanned once disclosed), but recognize that absent EPSS/KEV/POC confirmation the current evidence shows exploitability-by-design rather than proven active exploitation.

Exploit ScenarioDerived

An unauthenticated attacker first retrieves the freely-handed save-design nonce from the nbd_check_use_logged_in endpoint, then invokes the wp_ajax_nopriv_ nbdesigner_copy_image_from_url action using its Google Drive branch, supplying a gapi[name] value ending in '.php' plus their own Google Drive file and OAuth token as the content source. Because the Drive branch skips the jpg/jpeg/png/gif allow-list, the server writes attacker-controlled PHP bytes into the web-accessible wp-content/uploads/nbdesigner/temp/ directory, which the attacker then requests to execute arbitrary code. No public exploit identified at time of analysis, but the low-complexity network vector makes this trivially weaponizable once understood.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
No patch listed yet 0.9% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 14, 2026

Unauthenticated arbitrary file upload in the Printcart Store (PCDesigner / NB Designer) plugin for WooCommerce, versions up to and including 2.9.1, allows a remote attacker to write a .php file into the web-served wp-content/uploads/nbdesigner/temp/ directory and thereby execute arbitrary code on the server, yielding full compromise of confidentiality, integrity, and availability (CVSS 3.1 base 9.8, AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H). The flaw sits in the nbdesigner_copy_image_from_url AJAX action, which is exposed to logged-out callers via wp_ajax_nopriv_; its Google Drive branch rebuilds the destination filename from the raw, attacker-supplied gapi[name] parameter, bypassing the jpg/jpeg/png/gif allow-list used on the other branch, and the required save-design nonce is freely issued to anonymous callers by the nbd_check_use_logged_in endpoint, so it presents no barrier. Exploitation is not conditional on credentials, but does require the attacker to supply a Google Drive file they control plus a valid OAuth token, and it succeeds only where the uploads directory executes PHP - typical on default Apache/mod_php stacks but blocked under hardened upload configurations; no public exploit code or confirmed active exploitation was identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade the Printcart Store (PCDesigner / NB Designer) plugin to version 2.9.2, which is the release that follows the affected 2.9.1 and contains the corrected class.nbdesigner.php code path; confirm the upgrade against the Trac diff (https://plugins.trac.wordpress.org/changeset?reponame=&new=3716244%40printcart-integration%2Ftags%2F2.9.2&old=3715643%40printcart-integration%2Ftags%2F2.9.1) and the vendor advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/788461ba-2cf2-49d2-bbaa-a02de15f33ae?source=cve). If the plugin cannot be updated immediately, the highest-value compensating control is to deny PHP execution inside wp-content/uploads/nbdesigner/temp/ (and the uploads tree generally) via an Apache <Directory> block with php_admin_flag engine off or the equivalent nginx location rule; this neutralizes the RCE even though the malicious file is still written, with the trade-off that any legitimate dynamic script served from uploads would also stop working. Deactivating the plugin removes the exposure entirely but disables the store's product-design functionality, and you should also audit and delete any unexpected files already present in wp-content/uploads/nbdesigner/temp/, since successful exploitation likely left attacker PHP behind. A virtual patch or WAF rule blocking unauthenticated requests to admin-ajax.php with action=nbdesigner_copy_image_from_url is a reasonable additional layer, but it breaks the plugin's remote-image feature for logged-out users and is trivially bypassable by parameter variation, so it must not be treated as a substitute for the 2.9.2 upgrade or the no-PHP-in-uploads rule.

Affected VersionsENISA

Printcart Store – Web to Print Product Designer for WooCommerce 0 ≤2.9.1

Affected Packages

euvd printcart_store_web_to_print_product_designer_for_woocommerce 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 affected component is a WordPress/WooCommerce product-designer plugin (Printcart Store, distributed in code as printcart-integration and also known as PCDesigner / NB Designer), matched by the CPE cpe:2.3:a:printcart:printcart_store_-_web_to_print_product_designer_for_woocommerce. The root cause class is CWE-434, Unrestricted Upload of File with Dangerous Type. WordPress exposes AJAX handlers to unauthenticated visitors through the wp_ajax_nopriv_<action> hook; the plugin registers nbdesigner_copy_image_from_url this way, intending it as a convenience for pulling design artwork from a remote URL. Its Google Drive code path derives the local destination filename from the attacker-controlled gapi[name] parameter rather than enforcing the extension allow-list (jpg/jpeg/png/gif) applied on the sibling branch, so a value ending in .php is accepted. The fetched bytes are then written to wp-content/uploads/nbdesigner/temp/, a directory inside the WordPress uploads tree, which on conventional Apache/mod_php deployments is served over HTTP and executes PHP. Because the nonce that normally guards such actions is handed to anonymous users by the nbd_check_use_logged_in endpoint, nonce validation adds no protection. Net effect: a single unauthenticated HTTP request chain can place attacker-controlled PHP in an executable, web-reachable path - a full remote code execution primitive executing under the web server's user context.

Know when Woocommerce 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 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 9.8 CRITICAL

Unauthenticated nopriv AJAX action with a freely-issued nonce yields AV:N/AC:L/PR:N/UI:N, and arbitrary PHP execution gives full C:H/I:H/A:H on the host.

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

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

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

DescriptionCVE.org

The Printcart Store (PCDesigner / NB Designer) plugin for WooCommerce is vulnerable to unauthenticated arbitrary file upload leading to remote code execution in all versions up to, and including, 2.9.1 The nbdesigner_copy_image_from_url AJAX action is registered for logged-out callers (wp_ajax_nopriv_), and its Google Drive branch rebuilds the destination filename from the raw, attacker-supplied gapi[name] parameter - bypassing the jpg/jpeg/png/gif allow-list applied on the other branch - and writes the fetched bytes to a web-accessible directory (wp-content/uploads/nbdesigner/temp/). This makes it possible for unauthenticated attackers to write a .php file to a web-served, PHP-executing location and, by supplying their own Google Drive file and OAuth token as the content source, execute arbitrary code on the server. The required save-design nonce is handed to anonymous callers by the nbd_check_use_logged_in endpoint, so it presents no barrier.

Executive ViewAI

Why It Matters

WooCommerce storefronts using the Printcart Store (PCDesigner / NB Designer) plugin are exposed to unauthenticated remote code execution, enabling attackers to fully compromise the underlying web server, including customer data, payment information, and site integrity. This affects any organization hosting an unpatched instance of the plugin at versions up to and including 2.9.1, putting customer trust, regulatory compliance, and business continuity at immediate risk. Leadership should prioritize immediate mitigation and consider the plugin's necessity given the absence of a vendor patch.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include: blocking unauthenticated access to the nbdesigner_copy_image_from_url AJAX action via WAF or reverse proxy; disabling or removing the Printcart Store (PCDesigner / NB Designer) plugin if not essential; configuring the web server to deny execution of PHP scripts in the wp-content/uploads/nbdesigner/temp/ directory; and monitoring for suspicious file creation or outbound connections indicating compromise.

Threat Intelligence Overview

EPSS Score
0.9%
Top 43% exploitable
Prevalence
Low
niche WooCommerce web-to-print designer plugin, limited install base
Data Quality
4 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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.9%
Patch available No
Active threat No
Deciding rule
CRITICAL severity
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
Out-of-Cycle
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

Priority Score

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

Attack Technique

Malicious file upload attacks exploit insufficient validation when web applications accept user-provided files.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

CVE-2017-17058 HIGH POC
7.5 Nov 29

The WooCommerce plugin through 3.x for WordPress has a Directory Traversal Vulnerability via a /wp-content/plugins/wooco

CVE-2026-18143 CRITICAL POC
9.8 Sep 26

Unauthenticated arbitrary file upload in Addify's Request a Quote for WooCommerce plugin, affecting all versions up to a

CVE-2021-24212 CRITICAL POC
9.8 Apr 05

The WooCommerce Help Scout WordPress plugin before 2.9.1 (https://woocommerce.com/products/woocommerce-help-scout/) allo

CVE-2022-50972 CRITICAL POC
9.3 Jun 20

WooCommerce 7.1.0 contains a remote code execution vulnerability that allows attackers to execute arbitrary PHP code by

CVE-2025-10162 HIGH POC
8.6 Oct 07

Unauthenticated path traversal in OrderConvo (the "Admin and Customer Messages After Order for WooCommerce" plugin), aff

CVE-2026-81649 CRITICAL POC
9.1 Oct 11

Unauthenticated remote attackers can seize control of the payment configuration on WordPress stores running the Fundiin

CVE-2020-35627 HIGH POC
8.8 Dec 28

Ultimate WooCommerce Gift Cards 3.0.2 is affected by a file upload vulnerability in the Custom GiftCard Template that ca

CVE-2026-103307 HIGH POC
8.6 Oct 14

Unauthenticated attackers can exploit the Walletdoc Payment Gateway for WooCommerce plugin before version 1.8.5 to execu

CVE-2026-14962 HIGH POC
8.6 Sep 09

Unauthenticated SQL injection in the ELEX WooCommerce Request a Quote WordPress plugin (all versions before 2.4.1) allow

CVE-2026-92404 HIGH POC
7.5 Sep 19

Unauthenticated, network-reachable attackers can read the WooCommerce API consumer key and secret stored by the MgoSync

CVE-2023-34000 HIGH POC
7.5 Jun 14

Unauth. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no authentication required, low atta

CVE-2020-11497 HIGH POC
7.5 Aug 26

An issue was discovered in the NAB Transact extension 2.1.0 for the WooCommerce plugin for WordPress. Rated high severit

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