Learnpress Wordpress Lms Plugin For Create And Sell Online Courses
CVE-2026-4333
|
EUVD-2026-20045
MEDIUM
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. |
| Impact | CVSS 6.4 (Medium) with network attack vector and low complexity reflects a realistic threat profile. The PR:L (Contributor-level privilege requirement) significantly limits the attack surface compared to unauthenticated exploits, as WordPress sites with open registration are less common and contributors are typically semi-trusted users. However, the S:C (Scope Change) component indicates impact beyond the vulnerable component, and stored XSS affecting all site visitors elevates severity. EPSS exploitation probability and KEV status are not provided, suggesting this is not currently confirmed in active exploitation databases. The public availability of vulnerable code paths (via WordPress plugin repository) means proof-of-concept development would be straightforward for researchers. Real-world risk depends on site configuration: sites with restricted contributor access face minimal risk, while those with open registration or compromised contributor accounts face significant cookie theft, session hijacking, or malware injection risks. The requirement for an authenticated user to inject the payload is the primary limiting factor. |
| Exploit ScenarioDerived | A malicious WordPress contributor (or an attacker who has compromised a contributor account) crafts a page with the learn_press_courses shortcode, injecting JavaScript into the 'skin' attribute such as [learn_press_courses skin="test" onload="alert('xss')"], which bypasses sanitization because the attribute is directly embedded into HTML. When any website visitor (including administrators) views this page, the injected script executes in their browser within the site's security context, allowing the attacker to steal session cookies, deface content, or inject further malware. No public exploit code proof-of-concept has been identified at time of analysis, but the vulnerability is straightforward to exploit given knowledge of the vulnerable code path. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 08, 2026
Stored Cross-Site Scripting in LearnPress WordPress LMS Plugin up to version 4.3.3 allows authenticated contributors to inject malicious scripts via the 'skin' attribute of the learn_press_courses shortcode, which lacks proper output escaping. The injected scripts execute whenever any user visits a page containing the malicious shortcode, affecting all sites using vulnerable versions. No evidence of active exploitation exists at time of analysis.
RemediationAI
Update LearnPress to the patched version released after 4.3.3 (exact version number not specified in available data; check the WordPress plugin repository or ThimPress advisory for the specific release). The fix involves adding esc_attr() escaping around the 'skin' attribute value before it is inserted into HTML attributes within the sprintf() calls in ListCoursesShortcode.php. As a temporary workaround pending patching, WordPress administrators can restrict Contributor-level access to users who genuinely require it, and use role-based access control plugins to limit shortcode usage. Review existing pages and posts for any suspicious shortcode parameters that may indicate prior exploitation. Refer to the Wordfence vulnerability database entry (https://www.wordfence.com/threat-intel/vulnerabilities/id/15fb0a26-e415-4ccb-b83d-d8f7b36bce66) and WordPress plugin repository for official guidance.
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 vulnerability resides in the learn_press_courses shortcode handler (ListCoursesShortcode.php), specifically in how the 'skin' attribute parameter is processed. The plugin uses the unsanitized attribute value directly within sprintf() calls to generate HTML class and data-layout attributes without applying WordPress escaping functions like esc_attr(). This represents a classic CWE-79 (Improper Neutralization of Input During Web Page Generation) flaw where user-controlled input flows directly into HTML output context. The root cause is the absence of both input validation and context-aware output escaping; the 'skin' parameter should be validated against a whitelist of allowed values and escaped with esc_attr() before being inserted into HTML attributes.
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:C/C:L/I:L/A:N
Primary rating from Vendor (Wordfence) · only source for this CVE.
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'skin' attribute of the learn_press_courses shortcode in all versions up to and including 4.3.3. This is due to insufficient input sanitization and output escaping on the 'skin' shortcode attribute. The attribute value is used directly in an sprintf() call that generates HTML (class attribute and data-layout attribute) without any esc_attr() escaping. This makes it possible for authenticated attackers, with Contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
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
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
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
GHSA-7fvw-v44w-rxj9
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB