Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister/obtain subscriber account
-
DeliveryEnumerate paid course IDs via site browsing
-
ExploitCraft REST API cart request with quantity=0
-
Executionarray_merge overwrites default quantity in add_to_cart()
-
PersistOrder total calculates as $0
-
ImpactPayment gateway bypassed, free enrollment granted
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation requires a valid WordPress account with at minimum subscriber-level access (PR:L per CVSS vector) - anonymous unauthenticated users cannot exploit this vulnerability. The attack targets the LearnPress REST API cart endpoint (inc/rest-api/v1/frontend/class-lp-rest-courses-controller.php:L474), which must be active and reachable; standard WordPress REST API availability is the only deployment prerequisite. The specific triggering condition is supplying a user-controlled 'quantity' key with a value of zero in the REST request body, which exploits array_merge() key-precedence behavior to overwrite hardcoded defaults in add_to_cart(). Limiting factors: any WordPress site that disables user registration eliminates the subscriber account prerequisite; WAF rules that block non-standard quantity values (zero or negative) on REST cart endpoints also mitigate the attack; and SSVC Automatable: no indicates that per-course enumeration is required, reducing bulk or fully automated exploitation. |
| Impact | The CVSS base score of 4.3 (Medium) reflects network reachability with low complexity and low privileges, but no confidentiality or availability impact - consistent with a financial integrity bypass rather than a system compromise. The CVSS vector (AV:N/AC:L/PR:L/UI:N) confirms the attack is network-exploitable by any authenticated user with subscriber-level access, requiring no user interaction and no elevated permissions beyond a basic WordPress account. Against the CVSS signal, EPSS at 0.01% (2nd percentile) and SSVC Exploitation: none indicate no observed exploitation activity at time of analysis, and SSVC Automatable: no suggests the attack requires some per-target enumeration of paid course IDs - reducing mass-exploitation risk. SSVC Technical Impact: partial aligns with the limited I:L scope. The net picture is a high-priority business risk for WordPress LMS operators monetizing courses, but a low priority in terms of infrastructure or data breach risk. The low EPSS and absent KEV listing mean immediate emergency response is not warranted for most organizations, though the ease of exploitation (AC:L, PR:L) means any authenticated user on the affected site can trivially abuse this. |
| Exploit ScenarioDerived | An attacker registers a free subscriber account on a LearnPress-powered e-commerce site, identifies a paid course ID through normal browsing, and submits a crafted REST API POST request to the add-to-cart endpoint with the quantity parameter set to zero. The array_merge() call in add_to_cart() overwrites the default quantity, the order total resolves to $0, and the payment gateway processes it as a free transaction - granting the attacker full enrollment in the paid course without any financial charge. No public exploit code is known at time of analysis, but the attack is straightforward to reconstruct from the patch diff alone. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 08, 2026
Payment bypass in LearnPress WordPress LMS Plugin (all versions ≤ 4.3.5) allows authenticated subscribers to enroll in any paid course at zero cost by manipulating a REST API parameter. The flaw stems from improper input handling in the add_to_cart() REST API endpoint where PHP's array_merge() permits attacker-supplied values to silently overwrite hardcoded order defaults - specifically the quantity field - causing the order total to resolve to $0 and bypassing all configured payment gateway enforcement. No public exploit code has been identified at time of analysis, and CISA KEV does not list this vulnerability; SSVC and EPSS both signal low current exploitation pressure, though the low-friction exploit path warrants prompt remediation on revenue-generating LMS deployments.
RemediationAI
An upstream fix has been committed to the LearnPress plugin repository (changeset 3521636, visible at https://plugins.trac.wordpress.org/changeset?old=3521636%40learnpress&new=3521636%40learnpress); however, an exact released patched version number is not independently confirmed from the available data - operators should verify the current release in the WordPress plugin directory and update to any version released after 4.3.5. As a compensating control pending upgrade, site administrators can temporarily restrict REST API access by blocking the /wp-json/learnpress/v1/ endpoint namespace at the web server or WAF layer for non-authenticated sessions - note this may break legitimate enrollment flows and should be tested in staging first. Alternatively, disabling the LearnPress REST API cart functionality via plugin settings (if exposed) removes the attack surface entirely at the cost of REST-based enrollment workflows. Site owners should also audit recent orders for $0 transactions against paid courses to detect any prior abuse.
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 (CPE: cpe:2.3:a:thimpress:learnpress_-_wordpress_lms_plugin_for_create_and_sell_online_courses:*:*:*:*:*:*:*:*) is a WordPress LMS plugin that exposes a REST API endpoint (class-lp-rest-courses-controller.php:L474) for course enrollment via cart operations. The root cause is CWE-639 (Authorization Through User-Controlled Key): user-supplied REST request parameters are passed unsanitized as an array directly into add_to_cart() (class-lp-cart.php:L105, L180), where PHP's native array_merge() function is used to combine defaults with user input. Because array_merge() gives precedence to later-provided keys, an attacker-controlled 'quantity' value of zero overwrites the hardcoded default quantity, causing WooCommerce-style order total calculation to produce $0 - a value that satisfies all payment gateway pre-checks as a legitimate free transaction. The flaw is an integrity violation (CVSS C:N/I:L/A:N) with no confidentiality or availability impact, but the business impact on operators selling paid course access can be significant.
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:L/UI:N/S:U/C:N/I:L/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
DescriptionCVE.org
The LearnPress - WordPress LMS Plugin for Create and Sell Online Courses plugin for WordPress is vulnerable to payment bypass through user-controlled key in all versions up to, and including, 4.3.5. This is due to improper handling of user-supplied request parameters in the REST API endpoint, which passes the unsanitized parameter array to the add_to_cart() function where array_merge() allows attacker-controlled values to overwrite hardcoded defaults. This makes it possible for authenticated attackers, with subscriber-level access and above, to enroll in any paid course entirely free of charge by supplying a quantity value of zero, which causes the order total to calculate as $0 and bypasses all payment gateway requirements.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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-30218
GHSA-gc4c-8j88-m8pm
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB