Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain WordPress administrator credentials
-
DeliveryAuthenticate to target WordPress instance
-
ExploitSend crafted AJAX POST to admin-ajax.php with malicious 'orderby' value
-
ExecutionBypass partial whitelist in handle_params_query_list_orders()
-
PersistORDER BY clause injection executes in DataBase::execute()
-
ImpactExtract sensitive records 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 an authenticated session with WordPress administrator-level privileges or higher (confirmed by CVSS PR:H). The attack targets the export_order_csv AJAX action, which is gated behind this privilege check - subscriber, contributor, or editor roles cannot reach the vulnerable code path. The 'orderby' parameter must contain a value other than the literal strings 'date' or 'title' to bypass the partial normalization logic. The target installation must be running LearnPress version 4.4.4 or earlier. Attack vector is network (AV:N), meaning exploitation is possible remotely once the attacker has obtained valid administrator credentials. No special server-side configuration or non-default feature flag is required beyond having the plugin installed and active. |
| Impact | The CVSS 4.9 (Medium) score with vector AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N accurately represents the real-world risk profile. The high privilege requirement (PR:H - WordPress administrator) is the dominant mitigating factor; this vulnerability is entirely unreachable by unauthenticated or subscriber/editor-level users. While the confidentiality impact is rated High - meaning full database read is theoretically possible - WordPress administrators already possess direct database access through native tooling (phpMyAdmin, WP-CLI, wp-admin export), which substantially reduces the marginal risk this flaw introduces. EPSS data was not provided in the source intelligence, so exploitation probability cannot be quantified. KEV status is not confirmed, and no public POC has been noted. This should be treated as a low-priority patch for most organizations unless administrator accounts are shared across untrusted parties or the installation is a multi-tenant WordPress environment. |
| Exploit ScenarioDerived | An attacker with WordPress administrator credentials sends a crafted POST request to the admin-ajax.php endpoint invoking the export_order_csv action, with the 'orderby' parameter set to a SQL UNION or time-based blind injection payload. Because the value bypasses the partial whitelist and is concatenated directly into the ORDER BY clause in DataBase::execute(), the injected SQL executes against the WordPress database, enabling retrieval of password hashes, user emails, session tokens, or order metadata. No public exploit code has been identified, though ORDER BY injection techniques are well-documented and the vulnerability is mechanically straightforward to exploit once authenticated. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 01, 2026
SQL injection in the LearnPress WordPress LMS plugin (versions ≤ 4.4.4) allows authenticated administrators to extract arbitrary data from the WordPress database by injecting into the ORDER BY clause of the export_order_csv AJAX action. The flaw exists because the 'orderby' parameter is only partially normalized - only the literal strings 'date' and 'title' are whitelisted - and all other attacker-controlled values are concatenated directly into a raw SQL query inside DataBase::execute() without $wpdb->prepare() or an identifier allowlist. No public exploit has been identified at time of analysis, and the CVSS score of 4.9 (Medium) reflects the high privilege barrier as the primary risk limiter.
RemediationAI
Update the LearnPress plugin to a version beyond 4.4.4 as soon as a patched release is available. A fix has been committed to the WordPress plugin repository (changeset https://plugins.trac.wordpress.org/changeset?reponame=&old=3659942%40learnpress&new=3659942%40learnpress), but the exact released version number is not independently confirmed from the provided input data - verify the current stable version in the WordPress plugin directory before deploying. As a compensating control pending the update, restrict the export_order_csv AJAX action at the WAF or web server layer by blocking requests to admin-ajax.php with action=export_order_csv from untrusted network segments. Alternatively, if the order CSV export feature is unused, it can be disabled without impacting core LMS functionality. Limiting WordPress administrator account access to the minimum number of trusted users is also a practical risk reduction measure with no side effects.
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
LearnPress is a WordPress LMS plugin developed by ThimPress (CPE: cpe:2.3:a:thimpress:learnpress_-_wordpress_lms_plugin_for_create_and_sell_online_courses:*:*:*:*:*:*:*:*). The vulnerability chain begins in ExportOrderCSVAjax.php (line 41), which passes the user-supplied 'orderby' parameter to LP_Order::handle_params_query_list_orders() (class-lp-order.php, line 1542). That function assigns unvalidated values directly to the filter's order_by property, which is then consumed by DataBase::execute() (DataBase.php, line 600) and concatenated into an ORDER BY SQL clause. CWE-89 (Improper Neutralization of Special Elements in SQL Commands) describes the root cause. ORDER BY injection is a particularly insidious variant because WordPress's $wpdb->prepare() cannot parameterize SQL identifiers or column names - only an explicit allowlist or identifier-escaping function can safely handle this case, neither of which was applied here.
Know when Learnpress Wordpress Lms Plugin For Create And Sell Online Courses 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 authentication required (PR:H) for AJAX action access; only database read demonstrated, no integrity or availability impact applies.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The LearnPress plugin for WordPress is vulnerable to SQL Injection via the 'orderby' parameter of the export_order_csv AJAX action in versions up to, and including, 4.4.4. This is due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query in the LP_Order::handle_params_query_list_orders() and DataBase::execute() functions - only the literal values 'date' and 'title' are normalized, while any other attacker-controlled string is assigned directly to the filter's order_by property and concatenated into the ORDER BY clause without $wpdb->prepare() or an identifier whitelist. 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.
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.
Unauthenticated PHP object injection in the LearnPress WordPress LMS plugin through version 4.4.10 allows attackers to s
Unauthenticated data deletion in LearnPress WordPress LMS plugin (versions ≤4.3.2.8) allows remote attackers to delete a
Sensitive information exposure in the LearnPress LMS plugin for WordPress (versions up to and including 4.4.1) lets unau
Unauthenticated attackers can read and download course-material files - including uploaded file paths and external URLs
Stored cross-site scripting in the LearnPress WordPress LMS plugin (all versions up to and including 4.4.10) lets attack
Course enrollment data exposure in LearnPress WordPress LMS plugin (all versions through 4.3.9.1) enables authenticated
An authorization bypass in the LearnPress WordPress LMS plugin (all versions through 4.4.10) lets any authenticated user
Stored cross-site scripting in LearnPress - WordPress LMS Plugin versions through 4.3.9.1 allows authenticated contribut
Stored Cross-Site Scripting in the LearnPress WordPress LMS plugin (versions up to and including 4.4.0) allows authentic
Stored Cross-Site Scripting in LearnPress WordPress LMS Plugin up to version 4.3.3 allows authenticated contributors to
LearnPress WordPress LMS plugin versions through 4.4.7 reflect unsanitized input from the 'orderby' parameter into the D
Sensitive information exposure in LearnPress WordPress LMS Plugin (all versions through 4.3.6) allows unauthenticated re
EUVD-2026-68979
GHSA-j6rx-39p3-383g
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB