WordPress security changelog
MEDIUM CVE-2026-17589 Deferred

Wp Easycart permits second-order Administrator-level SQL injection

Wp Easycart through 5.9.2 accepts an unsanitized product_order value through ec_ajax_save_page_options and stores it in ec_pageoption. The plugin later retrieves the value with stripslashes() and concatenates it into SQL on store-page requests, allowing an Administrator to persist a second-order SQL injection payload and extract sensitive database information.

CVE / CNA score 4.9 CVSS 3.1 · security@wordfence.com
NVD score Pending NVD has not published its own CVSS assessment.
Component
Shopping Cart & eCommerce Store
Plugin slug
wp-easycart
Affected
<= 5.9.2
Safe version
See mitigation notes
Published
Sep 01, 2026
Weakness
CWE-89 — Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

This CVE was published Sep 01, 2026 and is one of 20 known issues for this plugin.

Update, patch or deactivate.

Update to a confirmed release newer than 5.9.2 when available. Until then, restrict page-option administration when warranted, inspect stored product_order values, audit database activity, and rotate exposed secrets if exploitation is suspected.

No confirmed safe version is listed. Consider a vendor-supported patch or temporarily restricting the affected functionality while you assess the risk.

Deactivate only when warranted by your risk profile, or when advised by your hosting provider in the limited circumstances where the vulnerability cannot otherwise be mitigated. If you’re unsure which action is appropriate, contact Fused or your hosting provider for guidance.

Technical description

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.

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

Primary and upstream sources