CVE-2024-3922
Critical · 10.0CVSS
10.0
EPSS
52.9%
Published
Jun 13, 2024
CISA due date
—
Cloudanix analysis
Attackers can send a specially crafted request to a vulnerable marketplace plugin and steal or possibly change the website’s stored customer and account information.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Web Framework
- Class
- SQL Injection
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The described flaw is an unauthenticated SQL injection in the Dokan Pro WordPress plugin through the user-controlled `code` parameter in versions up to and including 3.10.3. Because the parameter is not safely escaped or bound with prepared statements before being used in a SQL query, an attacker can alter the intended database query. Depending on database permissions and application behavior, this can allow extraction of sensitive database content, authentication data, order/customer information, and potentially database modification or denial of service. The supplied affected-product metadata references `micronaut-projects/micronaut-core (GIT)` with fixed commit `68f9bb0a78fa930865d37fca39252b9ec66e4a43`, which is inconsistent with the WordPress plugin description and should be validated against the authoritative advisory before remediation scoping.
Why it matters to the business
A successful attack can expose customer, vendor, order, and user-account data from an affected WordPress marketplace site and may enable account takeover or site manipulation if database writes are possible. The issue is critical, remotely exploitable without authentication, has weaponized exploit maturity, and has a high EPSS value, meaning internet-facing vulnerable sites should be treated as likely targets even though it is not currently listed in CISA KEV or marked as ransomware-used. Because the issue has been public for a long time, unpatched systems may already have been scanned or exploited.
How an attack unfolds
An attacker first identifies a WordPress site running a vulnerable Dokan Pro version. They then send crafted HTTP requests to the plugin functionality that accepts the `code` parameter. Instead of supplying a normal code value, the attacker appends SQL syntax such as quote-breaking payloads, boolean conditions, UNION-based selection, or time-delay expressions. The vulnerable server incorporates that input into an SQL statement without sufficient parameterization, causing the database to execute attacker-influenced SQL. The attacker can use response differences, returned rows, errors, or timing behavior to confirm injection, enumerate database structure, and extract sensitive rows such as WordPress users, password hashes, emails, customer records, vendor records, orders, and configuration values. If the database account has excessive privileges or stacked queries are possible, the attacker may attempt to alter data, create or modify administrator accounts, plant persistent access through WordPress options or plugin/theme content, or disrupt the database.
How to fix it
Upgrade Dokan Pro to a fixed vendor release newer than 3.10.3, or apply the vendor patch that replaces unsafe SQL construction with prepared statements and strict input validation for the `code` parameter. If using source or dependency tracking, verify the advisory mapping: the provided fixed-version metadata lists `micronaut-projects/micronaut-core (GIT)` fixed in commit `68f9bb0a78fa930865d37fca39252b9ec66e4a43`, but that does not align with the Dokan Pro WordPress plugin description. Until patched, restrict access to vulnerable plugin endpoints where feasible, deploy WAF rules blocking SQL metacharacters and SQL keywords in the `code` parameter, disable the affected plugin if business impact allows, and ensure the WordPress database user has least-privilege permissions and cannot write files or perform administrative database operations unnecessarily. Rotate credentials and invalidate sessions if exploitation is suspected.
How to confirm the fix worked
Confirm the installed Dokan Pro version is newer than 3.10.3 or that the vendor patch is present. Review plugin source or vendor release notes to verify the vulnerable query now uses parameterized database calls rather than string-concatenated user input. From an external perspective, verify that requests containing quote characters, UNION queries, boolean probes, and time-delay payloads in the `code` parameter are rejected, normalized, or handled without SQL errors or timing differences. Validate that WAF or reverse-proxy rules log and block suspicious `code` parameter values. Also verify the asset inventory and SBOM mapping because the supplied affected product/fixed commit metadata conflicts with the vulnerability description.
Typical attack path
- Discover WordPress sites running Dokan Pro or marketplace-related endpoints.
- Fingerprint plugin presence and version using page content, static assets, plugin paths, changelog exposure, or vulnerability scanners.
- Send unauthenticated requests containing crafted SQL syntax in the `code` parameter.
- Confirm exploitability using SQL errors, boolean response differences, or time-based delays such as `SLEEP()` or `BENCHMARK()`.
- Enumerate database metadata such as table names, column names, database version, and current user privileges.
- Extract sensitive WordPress and commerce data, including users, password hashes, customer/vendor information, orders, and configuration secrets.
- Attempt follow-on actions such as password cracking, account takeover, administrator creation, data tampering, web shell placement through writable application features, or extortion based on stolen data.
How to detect it
Review HTTP access logs, WAF/CDN logs, WordPress application logs, PHP error logs, and database logs for requests containing suspicious SQL syntax in a `code` query or form parameter. Prioritize unauthenticated requests, unusual user agents, high request rates, HTTP 500 responses, database error messages, and requests that produce long response times consistent with time-based SQL injection. Search for SQL keywords and metacharacters such as single quotes, comments, UNION SELECT, INFORMATION_SCHEMA, SLEEP, BENCHMARK, OR 1=1, and hex-encoded or URL-encoded equivalents near `code=`. In database logs, look for unexpected SELECTs against WordPress user tables, options, order/customer/vendor tables, metadata enumeration, or timing functions. For post-exploitation review, examine newly created WordPress administrator accounts, unexpected password or email changes, modified plugin/theme files, suspicious uploads, altered WordPress options, new scheduled tasks, and outbound data transfer anomalies. If a WAF blocked probes but the site remained vulnerable, continue reviewing origin logs because attackers may have bypassed edge controls.
- code='
- code=%27
- code=%22
- code=')
- code=%27)
- code=1%20OR%201=1
- code=%27%20OR%20%271%27=%271
- code=" OR "1"="1
- code=%22%20OR%20%221%22=%221
- code=UNION%20SELECT
- code=%27%20UNION%20SELECT
- code=union+select
- code=information_schema
- code=INFORMATION_SCHEMA
- code=sleep(
- code=SLEEP(
- code=benchmark(
- code=BENCHMARK(
- code=@@version
- code=database()
- code=user()
- code=concat(
- code=group_concat(
- code=load_file(
- code=into%20outfile
- code=--
- code=%2D%2D
- code=%23
- You have an error in your SQL syntax
- Warning: mysqli
- WordPress database error
- SELECT * FROM wp_users
- FROM information_schema.tables
- FROM information_schema.columns
What your security team should do
- Treat internet-facing affected WordPress sites as urgent remediation candidates due to unauthenticated remote exploitability, critical severity, high EPSS, and weaponized exploit maturity.
- Patch or disable Dokan Pro on all affected sites; prioritize versions up to and including 3.10.3.
- Validate vulnerability-management records because the provided package metadata references Micronaut rather than Dokan Pro; correct any asset or SBOM mapping errors before closing remediation.
- Deploy temporary WAF detections and blocks for SQL injection payloads targeting the `code` parameter while patching is underway.
- Search web, WAF, CDN, application, and database logs for historical exploitation attempts since the publication date and especially recent scanning spikes.
- Review WordPress administrator accounts, plugin/theme files, scheduled tasks, and database changes for unauthorized modifications.
- Rotate WordPress administrator passwords, database credentials, API keys, and salts if exploitation is confirmed or sensitive data exposure cannot be ruled out.
- Harden database privileges so the WordPress database account has only the minimum permissions required for normal operation.
The record
The Dokan Pro plugin for WordPress is vulnerable to SQL Injection via the 'code' parameter in all versions up to, and including, 3.10.3 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-87936 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')… CWE-89
- CVE-2026-87938 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')… CWE-89
- CVE-2026-114664 Frappe Framework before 16.33.0 contains a blind SQL injection vulnerability in the… CWE-89
- CVE-2026-114577 A vulnerability was found in oretnom23 php-travel-agency-system. CWE-89
- CVE-2026-113406 BA-Workflow developed by YS-infoware has a SQL Injection vulnerability. CWE-89
- CVE-2026-113405 BA-Workflow developed by YS-infoware has a SQL Injection vulnerability. CWE-89
- CVE-2026-107081 SQL injection via identifier injection in the tableName and tableFields POST parameters… CWE-89
- CVE-2026-112150 A security flaw has been discovered in vraj404 Criminal-Management-System up to… CWE-89