Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain CRM Agent role credentials
-
DeliverySend crafted AJAX POST with malicious erpadvancefilter payload
-
Exploitsanitize_text_field passes single quotes intact
-
Executionerp_crm_contact_advance_filter() interpolates payload into SQL WHERE clause
-
Persist$wpdb->get_results() executes injected query
-
ImpactExtract sensitive rows from WordPress database
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 | Exploitation requires a valid WordPress session authenticated with the plugin-supplied CRM Agent role or a higher CRM role (CRM Manager or WordPress admin), plus the erp_crm_list_contact capability. These roles must be explicitly assigned by a WordPress administrator - they are not granted by default to ordinary subscribers or site visitors. The vulnerable code path is reached via a network-accessible AJAX endpoint (AV:N, no local access required), but the session authentication gate means unauthenticated attackers cannot reach the vulnerable parameter. Exploitation is further limited to WordPress installations with the WP ERP plugin active and its CRM module enabled. What limits exploitation: the requirement for a specifically privileged, plugin-assigned role reduces the realistic attacker pool to insiders, compromised privileged accounts, or social-engineering scenarios targeting CRM users. |
| Impact | The NVD/Wordfence CVSS score of 6.5 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N) accurately reflects the primary risk profile: the attack requires no special network position and low complexity, but is gated behind a low-privilege authenticated session with the plugin-supplied CRM Agent role and the erp_crm_list_contact capability. This authentication requirement is the single most significant real-world mitigating factor - an attacker must first obtain valid credentials with that specific role, which requires prior admin assignment. Confidentiality impact is high (arbitrary database read, potentially exposing WordPress user hashes, contact PII, financial data), while integrity and availability are unaffected by this injection path. No EPSS score was provided in the input data, so exploitation probability cannot be quantified. The vulnerability is not listed in CISA KEV, and no public exploit or POC has been identified. The Wordfence advisory and detailed trac source links make the flaw technically transparent, which may lower the barrier to exploitation once a POC is developed. Real-world priority is moderate: organizations with many CRM Agent role users face meaningful insider or compromised-credential risk; organizations with tightly controlled role assignments face lower immediate exposure. |
| Exploit ScenarioDerived | An attacker who has obtained or been granted a CRM Agent account on the target WordPress site submits a crafted HTTP request to the CRM AJAX endpoint with a malicious 'erpadvancefilter' value containing a SQL escape sequence (e.g., a single quote followed by a UNION SELECT clause). Because sanitize_text_field preserves the single quote, the injected SQL breaks out of the intended WHERE clause string and appends an attacker-controlled query, causing $wpdb->get_results() to return rows from arbitrary database tables including wp_users. No public POC has been identified, but the full call chain is documented in Wordfence's advisory and the plugin trac source references. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 05, 2026
SQL injection in the WP ERP WordPress plugin (all versions through 1.17.4) allows authenticated CRM Agent-role users to extract arbitrary data from the WordPress database by supplying a crafted 'erpadvancefilter' parameter to the CRM AJAX handler. The root flaw is a sanitization gap: sanitize_text_field strips HTML but preserves single quotes, which are then interpolated verbatim into a single-quoted SQL WHERE clause inside erp_crm_contact_advance_filter() before execution via $wpdb->get_results(), bypassing WordPress's parameterized query protections entirely. No public exploit has been identified at time of analysis, but the vulnerable code paths are fully documented in WordPress plugin trac source references provided by Wordfence.
RemediationAI
A fix has been committed to the plugin's development trunk in changeset 3577284, modifying functions-customer.php to address the interpolation flaw; however, a tagged released version beyond 1.17.4 is not independently confirmed from the available references, so administrators should monitor the WordPress plugin repository at https://wordpress.org/plugins/erp/ for a patched release and upgrade promptly once available. In the interim, the most effective compensating control is to audit and restrict assignment of the CRM Agent role to only trusted, known individuals - removing the role from any accounts not explicitly requiring it, since exploitation requires this specific role plus the erp_crm_list_contact capability. As an additional layer, Web Application Firewall rules blocking SQL metacharacters (single quotes, SQL keywords) in the 'erpadvancefilter' AJAX parameter can reduce exploitation risk, though WAF bypass techniques exist and this should not substitute for patching. Disabling the CRM contact advance filter feature entirely, if operationally feasible, eliminates exposure to this specific endpoint.
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 affected product is the WP ERP plugin by weDevs (CPE: cpe:2.3:a:wedevs:erp), a WordPress business suite covering HR, accounting, and CRM functions including WooCommerce integration. CWE-89 (Improper Neutralization of Special Elements in SQL Commands) applies: the AJAX handler registered in AjaxHandler.php (line 180) accepts 'erpadvancefilter' from user input and passes it through WordPress's sanitize_text_field(), a function designed to strip HTML tags and invisible characters but explicitly documented to preserve single-quote characters. The sanitized value is then passed to erp_crm_contact_advance_filter() in functions-customer.php (line 2376), which constructs a SQL WHERE clause via string interpolation - embedding the user-controlled value inside a single-quoted SQL fragment - before executing it with $wpdb->get_results(). Because the value is interpolated into a single-quoted context and single quotes are preserved, an attacker can escape the intended string boundary and append arbitrary SQL clauses, enabling UNION-based or boolean-based data extraction. The functions-people.php references (lines 203, 228) and CRM.php entry point confirm the call chain.
Know when Erp 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:L/UI:N/S:U/C:H/I:N/A:N
PR:L reflects mandatory CRM Agent role; AV:N for network-accessible AJAX endpoint; C:H for arbitrary database read; I:N and A:N as the injection path is read-only.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The ERP: Complete HR, Accounting & CRM Suite with WooCommerce CRM Support plugin for WordPress is vulnerable to SQL Injection via the 'erpadvancefilter' parameter in all versions up to, and including, 1.17.4 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. The handler runs the value through sanitize_text_field, which preserves single quotes, and the downstream erp_crm_contact_advance_filter() function interpolates it directly into a single-quoted SQL WHERE clause before execution via $wpdb->get_results(). This makes it possible for authenticated attackers, with the plugin-supplied CRM Agent role (or higher CRM Manager / WordPress admin) and the erp_crm_list_contact capability, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
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.
ERP commit 44bd04 was discovered to contain a SQL injection vulnerability via the id parameter at /index.php/basedata/co
An arbitrary file upload vulnerability in ERP commit 44bd04 allows attackers to execute arbitrary code via uploading a c
jerryhanjj ERP 1.0 is vulnerable to SQL Injection in the set_password function in application/controllers/home.php. Rate
Sme.UP ERP TOKYO V6R1M220406 was discovered to contain an arbitrary file upload vulnerability. Rated high severity (CVSS
Sme.UP ERP TOKYO V6R1M220406 was discovered to contain an OS command injection vulnerability via calls made to the XMSer
A vulnerability was found in jerryhanjj ERP. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable,
ERP commit 44bd04 was discovered to contain a SQL injection vulnerability via the id parameter at /index.php/basedata/in
Sme.UP ERP TOKYO V6R1M220406 was discovered to contain an information disclosure vulnerability via the /debug endpoint.
Sme.UP TOKYO V6R1M220406 was discovered to contain an arbitrary file download vulnerabilty via the component /ResourceSe
Unrestricted file upload in the wedevs WP ERP plugin (ERP: Complete HR, Accounting & CRM Suite for WooCommerce) for Word
There is an improper Neutralization of Special Elements used in an SQL Command (SQL Injection) vulnerability in php file
VAT Pro-Rata reports in SAP ERP (SAP_APPL versions 600, 602, 603, 604, 605, 606, 616 and SAP_FIN versions 617, 618, 700,
EUVD-2026-53041
GHSA-hjjr-7h7r-m538
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB