Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAuthenticate as WordPress administrator
-
DeliveryPOST crafted SQL payload in product_order to ec_ajax_save_page_options
-
ExploitPayload stored unsanitized in ec_pageoption table
-
InstallStore page rendered (attacker or victim trigger)
-
C2Stored value retrieved and stripslashes() strips escaping
-
ExecutePayload concatenated into ORDER BY SQL in ec_filter.php
-
ImpactSensitive database records returned
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence 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 WordPress session with administrator-level role or higher - confirmed by CVSS PR:H. The vulnerable code path is triggered specifically by the ec_ajax_save_page_options AJAX handler, which processes the 'product_order' POST parameter. The second stage requires that a store page exist and be rendered (either by the attacker or any site visitor) after the payload is written, making this a stored/deferred injection rather than an immediate one. Exploitation is constrained to WordPress installations running WP EasyCart 5.9.2 or earlier. There is no indication of exploitability against default WordPress configurations without the plugin installed. The use of stripslashes() as a data-retrieval step is the specific mechanism that defeats WordPress's legacy magic-quotes defense; this behavior is present in the 5.9.1 source confirmed in the plugin SVN repository. |
| Impact | The CVSS 3.1 score of 4.9 (AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N) accurately reflects the dual nature of this finding: the network attack vector and low complexity inflate the theoretical risk, while the PR:H requirement for WordPress administrator credentials substantially narrows the realistic attacker population to insiders, credential-compromise scenarios, or privilege-escalation chains. The confidentiality impact is genuine - C:H represents the ability to exfiltrate customer PII, order history, hashed credentials, and any other data in the WordPress database. However, integrity and availability are unaffected (I:N/A:N), limiting blast radius to data theft. No KEV listing and no POC availability are reported, and the second-order nature of the attack (requiring two separate HTTP interactions and knowledge of the internal data flow) adds practical friction against automated exploitation. EPSS data is not provided in the input. Real-world priority is moderate for stores with externally accessible admin panels or shared-hosting environments where admin credentials may be weaker. |
| Exploit ScenarioDerived | An attacker who has obtained WordPress administrator credentials - via phishing, credential stuffing, or privilege escalation - submits a crafted SQL fragment through the product_order POST parameter to the ec_ajax_save_page_options handler. The payload is stored verbatim in the ec_pageoption table. When any store page is subsequently rendered, the payload is retrieved, stripslashes() removes protective escaping, and the fragment is appended to an ORDER BY SQL clause, causing the database to return attacker-specified data such as user password hashes or customer records in the HTTP response or error output. No public exploit code has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 01, 2026
Second-order SQL injection in the WP EasyCart (Shopping Cart & eCommerce Store) WordPress plugin through version 5.9.2 allows authenticated administrators to extract arbitrary data from the WordPress database. The attack is a two-stage operation: a malicious payload is first written to the ec_pageoption table via the ec_ajax_save_page_options handler without any sanitization, then on subsequent store page renders the value is retrieved and processed through stripslashes() - which strips WordPress's magic-quote escaping - before being concatenated directly into a live SQL query in ec_filter.php. No public exploit has been identified at time of analysis, and the PR:H requirement substantially constrains the realistic attacker population.
RemediationAI
Update the WP EasyCart plugin to a version beyond 5.9.2. A remediation changeset has been committed to the WordPress plugin SVN repository (https://plugins.trac.wordpress.org/changeset?reponame=&old=3659459%40wp-easycart&new=3659459%40wp-easycart); however, the exact released patched version number is not independently confirmed from the available input data - verify the current stable release in the WordPress plugin directory before deploying. As compensating controls pending a patch, restrict access to the WordPress admin dashboard using IP allowlisting or HTTP authentication at the web-server layer (trade-off: breaks legitimate remote admin workflows); enforce multi-factor authentication on all administrator accounts to reduce credential-compromise risk; and audit existing ec_pageoption table entries for anomalous ORDER BY payloads as an indicator of prior exploitation. The ec_ajax_save_page_options AJAX action should be considered untrusted input until the fix is confirmed applied.
Affected VersionsENISA
Affected Packages
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 vulnerability is a CWE-89 (SQL Injection) manifesting as a second-order (stored) variant rather than a direct reflection. Stage one: the ec_ajax_save_page_options handler (wpeasycart.php lines 7086 and 7181) accepts raw $_POST['product_order'] data and persists it to the ec_pageoption database table with no sanitization or parameterization. Stage two: during store page rendering, the stored value is retrieved and passed through PHP's stripslashes(), which actively removes the backslash escaping that WordPress's legacy magic-quotes layer would otherwise provide, before being concatenated into a SQL ORDER BY clause in ec_filter.php at line 768. The result is an unparameterized query exposed to attacker-controlled input. The affected product is identified by CPE cpe:2.3:a:levelfourstorefront:shopping_cart_&_ecommerce_store:*:*:*:*:*:*:*:* covering all releases through 5.9.2.
Know when Wordpress Plugin 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
AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N
Administrator credentials required (PR:H); read-only SQL exfiltration yields C:H with no write or availability impact; network-delivered submission (AV:N) but auth gates access.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Shopping Cart & eCommerce Store plugin for WordPress is vulnerable to generic SQL Injection via the 'product_order' parameter in all versions up to, and including, 5.9.2 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated attackers, with administrator-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. This is a second-order SQL injection: the payload is written to the ec_pageoption table via the ec_ajax_save_page_options handler - which applies no sanitization to raw $_POST values - and is later retrieved with stripslashes() (bypassing WordPress magic-quotes protection) before being concatenated directly into SQL on every store page render.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
More in Wordpress Plugin
View allThe Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in
EUVD-2026-68970
GHSA-45gf-cv6w-gvf5
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB