Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Lifecycle Timeline
3DescriptionCVE.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.
AnalysisAI
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.
Technical ContextAI
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.
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.
The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail comman
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
The GiveWP - Donation Plugin and Fundraising Platform plugin for WordPress is vulnerable to PHP Object Injection in all
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Country State City Dropdown CF7 plugin for WordPress is vulnerable to SQL Injection via the ‘cnt’ and 'sid' paramete
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-20045
GHSA-7fvw-v44w-rxj9