Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit crafted order_comments or quantity at checkout
-
DeliveryPayload stored unsanitized in order record
-
ExploitAdmin opens order/invoice in wp-admin
-
ExecutionScript executes in admin session
-
ImpactHijack session or forge admin actions
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Two injection vectors are involved: the 'quantity' parameter handled by the LearnPress frontend REST courses controller, and the 'order_comments' field in the checkout flow. Exploitation is fully unauthenticated only when the site has guest checkout enabled; when guest checkout is disabled, the attacker needs any Subscriber-level account and exploits both vectors through their own checkout. The stored payload executes when a user - in practice a store administrator - views the affected order details or invoice export page in wp-admin, so the impact is realized through routine operator activity rather than attacker-triggered. Limiting factors: dependence on the guest-checkout setting for the unauthenticated path, and the need for a victim to open the affected order/invoice page. |
| Impact | This is a credible but moderate-priority issue. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C) and the 7.2 base score reflect network-reachable, low-complexity stored XSS with a scope change, where injection in a buyer-facing checkout flow executes in a different security context (the WordPress admin viewing orders/invoices). The PR:N rating is only valid in the guest-checkout-enabled configuration explicitly called out in the description; with guest checkout disabled, a Subscriber-level account is required, so real-world privilege requirements depend on site configuration - the single CVSS vector flattens two materially different attack preconditions. No EPSS score, CISA KEV entry, or public POC is present in the supplied data, so there is no evidence of active exploitation. Confidentiality and integrity impacts are Low (C:L/I:L, A:N), consistent with session/DOM-level script execution rather than direct code execution. Net: a real, patchable XSS in a widely-installed plugin that warrants prompt patching, but not an emergency on the level of an actively-exploited RCE. Note the UI:N choice is debatable since the payload executes only when a victim (typically an admin) views the affected order page - routine for store operators, but technically a form of required interaction. |
| Exploit ScenarioDerived | An attacker places an order through the LearnPress checkout and submits a malicious script payload in the 'order_comments' field (or the REST 'quantity' parameter), which is stored without sanitization. When a site administrator later opens the order details or invoice export in wp-admin, the script executes in the admin's authenticated session, enabling actions such as session/cookie theft or admin-context request forgery. With guest checkout enabled this requires no authentication at all; otherwise a free Subscriber account suffices. No public exploit code was identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 17, 2026
Stored cross-site scripting in the LearnPress WordPress LMS plugin (all versions up to and including 4.4.10) lets attackers plant arbitrary JavaScript that executes in a store administrator's browser when they open the affected order details or invoice export screens in wp-admin. Two injection points exist: the 'quantity' parameter handled by the frontend REST courses controller and the 'order_comments' field captured during checkout; the unauthenticated path depends on the site having guest checkout enabled, while sites with guest checkout disabled still expose both vectors to any Subscriber-level account. CISA KEV does not list this issue and no public exploit identified at time of analysis; exploitation requires the victimized operator to view a poisoned order or invoice page, which keeps it a credible but moderate-priority risk despite a 7.2 CVSS score reflecting scope change into the admin context.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed - the plugin's WordPress.org repository contains a fix changeset (https://plugins.trac.wordpress.org/changeset?reponame=&old=3750024%40learnpress&new=3750024%40learnpress), so upgrade LearnPress to a build containing that changeset as soon as a tagged release is published, and verify the version number against the vendor advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/4ac1ddf0-9164-45a8-b1dc-e684b1b4b447?source=cve rather than assuming one. Until a patched release is confirmed, reduce exposure by disabling guest checkout in LearnPress settings (this closes the fully unauthenticated path but does not protect against Subscriber-level attackers, who can still submit both the 'quantity' and 'order_comments' vectors through their own checkout, so also tighten the default registration role and require manual approval of new accounts); deploy WAF or virtual-patching rules that reject script/HTML markup in the quantity parameter on the LearnPress REST courses endpoints and in the checkout order_comments POST field, accepting that legitimate buyers rarely need HTML in either field and that overly broad rules may block some order notes; restrict wp-admin access to the LearnPress order and invoice screens to a minimal set of trusted administrators and consider denying the invoice-export preview action to lower-privileged staff, with the trade-off that this reduces operational convenience for order handling; and audit existing orders for stored markup in comments or quantities before and after remediation, since payloads planted prior to the upgrade persist in the database.
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 root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically a stored/persistent variant. LearnPress accepts buyer-supplied values in two distinct code paths: the REST layer's frontend courses controller (inc/rest-api/v1/frontend/class-lp-rest-courses-controller.php) processes the 'quantity' parameter, and the checkout flow (inc/class-lp-checkout.php) persists the 'order_comments' field; related handling appears in the cart (inc/cart/class-lp-cart.php) and order (inc/order/class-lp-order.php) classes. Those values are stored with the order and later rendered without adequate output escaping in administrative views, notably the order details meta box (inc/admin/views/meta-boxes/order/details.php) and the invoice content/preview template (inc/admin/views/meta-boxes/order/content-tab-preview-exports-invoice.php), with the refund-order admin JavaScript (assets/src/js/admin/order/refund-order.js) forming another sink. Because the stored payload executes in the wp-admin origin with the administrator's session, the CVSS vector is correctly scored S:C (scope changed) - the vulnerable component (front-end checkout/REST input handling) is not the component whose security is impacted (the administrative backend). The CPE cpe:2.3:a:thimpress:learnpress_-_wordpress_lms_plugin_for_create_and_sell_online_courses confirms the affected package is the ThimPress LearnPress plugin distributed through WordPress.org.
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:N/UI:N/S:C/C:L/I:L/A:N
Network-reachable checkout input, no auth under default guest checkout (PR:N), stored payload executes in admin context so scope changes (S:C); XSS yields limited C/I impact, no availability impact.
Primary rating from Vendor (Wordfence).
CVSS VectorNVD
DescriptionNVD
The LearnPress - WordPress LMS Plugin for Create and Sell Online Courses plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'quantity (REST) / order_comments (checkout)' parameter in all versions up to, and including, 4.4.10 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. With guest checkout enabled the attack is fully unauthenticated; with guest checkout disabled, any Subscriber-level user can exploit both vectors through their own checkout.
Executive ViewAI
LearnPress versions up to and including 4.4.10 contain a high-severity stored cross-site scripting flaw that can run attacker-controlled JavaScript in an administrator’s browser when order details or invoice export screens are viewed. This affects WordPress LMS sites using LearnPress checkout and administrative order workflows, creating risk to administrative sessions, student and payment data, and site integrity. No vendor patch is currently identified and no public exploit identified at time of analysis, so leadership should prioritize interim containment and monitoring.
No vendor-released patch identified at time of analysis; disable guest checkout, restrict Subscriber-level accounts, limit access to wp-admin order and invoice screens, deploy WAF or virtual patching for the quantity and order_comments vectors, sanitize or escape stored order data, and consider disabling LearnPress until a fixed version is available.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
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
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
SQL injection in the LearnPress WordPress LMS plugin (versions ≤ 4.4.4) allows authenticated administrators to extract a
EUVD-2026-103216
GHSA-xjwq-jfhh-r4m2
NVD
CVE.org
Exploit-DB