Skip to main content

LearnPress EUVDEUVD-2026-40934

| CVE-2026-12732 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-07-01 Wordfence GHSA-qrp7-xr7v-h39q
6.4
CVSS 3.1 · Vendor: Wordfence
Share

Severity by source

Vendor (Wordfence) PRIMARY
6.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
vuln.today AI
5.4 MEDIUM

Stored XSS requires victim page view (UI:R per CVSS guidance); contributor access required (PR:L); scope changes to victim browser (S:C); no availability impact.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

2
Analysis Generated
Jul 01, 2026 - 08:36 vuln.today
CVE Published
Jul 01, 2026 - 07:53 nvd
MEDIUM 6.4

DescriptionCVE.org

The LearnPress plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'class_wrapper_form' shortcode attribute in versions up to, and including, 4.4.0. This is due to insufficient input sanitization and output escaping in the FilterCourseTemplate::sections() method at line 98, where the attacker-controlled attribute is inserted into an HTML class attribute via sprintf('<form class="%s">', $class_wrapper_form) without esc_attr() escaping. The FilterCourseShortcode::render() handler does not apply shortcode_atts() filtering, so raw user attributes flow directly through do_action('learn-press/filter-courses/layout', $data) into the template. 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 the LearnPress WordPress LMS plugin (versions up to and including 4.4.0) allows authenticated contributors to permanently inject arbitrary JavaScript into WordPress pages via the unescaped 'class_wrapper_form' shortcode attribute. The payload persists in the database and executes in the browser of any visitor - including administrators - who loads the affected page, enabling session hijacking, credential harvesting, or privilege escalation through forged admin actions. No CISA KEV listing or public exploit code has been identified at time of analysis, but the Wordfence advisory includes precise code-level references that substantially lower the bar for independent reproduction.

Technical ContextAI

LearnPress is a WordPress LMS plugin by ThimPress (CPE: cpe:2.3:a:thimpress:learnpress_-_wordpress_lms_plugin_for_create_and_sell_online_courses:*:*:*:*:*:*:*:*) used for creating and selling online courses. The vulnerability is classified as CWE-79 (Improper Neutralization of Input During Web Page Generation). The root cause is a two-part failure: first, FilterCourseShortcode::render() at inc/Shortcodes/Course/FilterCourseShortcode.php:29 omits WordPress's standard shortcode_atts() call, which would normally whitelist and default-sanitize any shortcode attribute. Second, the raw attacker-supplied attribute value travels through a do_action('learn-press/filter-courses/layout', $data) hook into FilterCourseTemplate::sections() at inc/TemplateHooks/Course/FilterCourseTemplate.php:98, where it is interpolated directly into an HTML class attribute via sprintf('<form class="%s">', $class_wrapper_form) without WordPress's esc_attr() escaping function. An attacker can close the attribute with a double-quote and inject inline event handlers or script tags that become part of the stored page HTML.

RemediationAI

Update LearnPress to a version above 4.4.0; the upstream fix is available in WordPress plugin Trac changeset 3587186 (https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3587186%40learnpress&new=3587186%40learnpress), though an exact patched release version is not independently confirmed from the available data - verify in the WordPress.org plugin changelog before deploying. If immediate patching is not possible, the most effective compensating control is disabling contributor-level (and potentially author-level) publishing capability via the WordPress roles editor or a capability manager plugin, which prevents untrusted users from publishing pages containing shortcodes; the trade-off is that legitimate contributors lose publishing rights until the patch is applied. Alternatively, a mu-plugin or filter snippet can remove the 'learn-press/filter-courses' shortcode handler globally, eliminating the attack surface at the cost of disabling course-filter UI elements site-wide. Monitor the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/09c8db69-60fa-4087-9096-5d34ce44f616 for confirmed patched version numbers.

CVE-2026-4365 CRITICAL
9.1 Apr 14

Unauthenticated data deletion in LearnPress WordPress LMS plugin (versions ≤4.3.2.8) allows remote attackers to delete a

CVE-2026-13765 HIGH
7.5 Jul 17

Sensitive information exposure in the LearnPress LMS plugin for WordPress (versions up to and including 4.4.1) lets unau

CVE-2026-11988 MEDIUM
6.5 Jul 01

Course enrollment data exposure in LearnPress WordPress LMS plugin (all versions through 4.3.9.1) enables authenticated

CVE-2026-12230 MEDIUM
6.4 Sep 08

Stored cross-site scripting in LearnPress - WordPress LMS Plugin versions through 4.3.9.1 allows authenticated contribut

CVE-2026-4333 MEDIUM
6.4 Apr 08

Stored Cross-Site Scripting in LearnPress WordPress LMS Plugin up to version 4.3.3 allows authenticated contributors to

CVE-2026-8502 MEDIUM
5.3 Jun 06

Sensitive information exposure in LearnPress WordPress LMS Plugin (all versions through 4.3.6) allows unauthenticated re

CVE-2026-77823 MEDIUM
4.9 Sep 01

SQL injection in the LearnPress WordPress LMS plugin (versions ≤ 4.4.4) allows authenticated administrators to extract a

CVE-2026-75982 MEDIUM
4.4 Aug 25

Unauthorized option-write in LearnPress (WordPress LMS plugin) versions up to and including 4.4.4 allows authenticated a

CVE-2026-3225 MEDIUM
4.3 Mar 23

The LearnPress WordPress LMS Plugin contains a missing capability check vulnerability in the delete_question_answer() fu

CVE-2026-7648 MEDIUM
4.3 May 14

Payment bypass in LearnPress WordPress LMS Plugin (all versions ≤ 4.3.5) allows authenticated subscribers to enroll in a

Share

EUVD-2026-40934 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy