Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain or register Instructor-role account
-
DeliverySubmit XSS payload in quiz answer title field
-
ExploitPayload persists in WordPress database
-
InstallVictim (ideally admin) views quiz page
-
C2Stored JavaScript executes in victim's browser
-
ExecuteSession cookie or credentials exfiltrated
-
ImpactAttacker achieves site-level compromise
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 | Exploitation requires the attacker to possess an authenticated WordPress account with the LearnPress Instructor role on the target site running a version of the plugin prior to 4.4.6. No elevated WordPress administrator privileges are needed to inject the payload - the Instructor role alone is sufficient to submit quiz answers. A victim (student, instructor, or administrator) must subsequently navigate to and view the quiz page containing the injected answer title, which is the UI:P condition in the CVSS 4.0 vector. Exploitation is limited by the requirement to obtain an Instructor-role account; sites that restrict this role to fully trusted internal staff face substantially reduced realistic risk compared to open-enrollment platforms where external users can self-register as Instructors. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/SC:L/SI:L) yields a 5.1 Medium score that accurately describes the mechanical prerequisites but understates the practical impact on WordPress-based LMS deployments. Requiring the Instructor role (PR:L) limits the attacker pool to authenticated users with a specific platform role, but many LMS operators grant Instructor accounts to external contractors, course authors, or students who complete a registration workflow - making the population of potential attackers non-trivial. The cross-user execution (SC:L/SI:L in 4.0; S:C in 3.1 terms) is the critical amplifier: when an administrator views the poisoned quiz, stored XSS payloads in WordPress context can create rogue admin accounts, install backdoors, or exfiltrate authentication cookies, effectively escalating to full site compromise. Even a mid-sized municipal IT team in gliwice running a staff training portal on LearnPress should treat this as a priority patch rather than a routine medium-severity backlog item, especially where Instructors are not all fully vetted staff. No KEV listing and no confirmed public POC exist at time of analysis, so exploitation remains opportunistic rather than systematic. |
| Exploit ScenarioDerived | An attacker who holds or acquires a LearnPress Instructor account submits a quiz question with a JavaScript payload - such as a cookie-exfiltrating script - embedded in the answer title field. When a site administrator later opens the quiz for review or grading, the payload fires in the admin's browser session, enabling the attacker to steal the admin's authentication cookie and subsequently take over the WordPress site with full administrative privileges. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 03, 2026
Stored cross-site scripting in LearnPress WordPress Plugin before 4.4.6 allows authenticated Instructor-role users to inject persistent JavaScript through quiz question answer title fields, with payloads executing in the browsers of any user who views the affected quiz - including administrators. The unescaped HTML sink means stored payloads persist until patched, making every quiz viewer a potential victim regardless of their privilege level. No public exploit or active exploitation (CISA KEV) is confirmed at time of analysis, but the admin-targeting capability meaningfully elevates practical impact beyond the medium CVSS score.
RemediationAI
Update LearnPress to version 4.4.6 or later, which resolves the stored XSS by applying proper sanitization and output escaping to the quiz question answer title parameter. Updates can be applied via the WordPress admin dashboard under Plugins > Installed Plugins > Update, or via WP-CLI with wp plugin update learnpress. Reference the VulnCheck advisory at https://www.vulncheck.com/advisories/learnpress-wordpress-plugin-stored-xss-via-quiz-question-answer-titles and the plugin's changelog at https://wordpress.org/plugins/learnpress/#developers for confirmation of the fix. If immediate patching is not feasible, restrict the Instructor role exclusively to fully trusted, vetted staff accounts and disable Instructor-facing quiz answer editing until the patch is applied - this trades platform functionality for a meaningful reduction in attacker surface. Implementing a Content Security Policy (CSP) header that restricts inline script execution provides an additional layer of defense but does not eliminate the underlying flaw.
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 is a Learning Management System plugin for WordPress developed by ThimPress (CPE: cpe:2.3:a:thimpress:learnpress:*:*:*:*:*:*:*:*). The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation - Stored XSS), occurring in the quiz question answer title parameter. WordPress plugin best practice requires output to pass through sanitization functions such as esc_html() or wp_kses() before rendering in HTML context; this plugin fails to apply such encoding for this specific parameter. The payload is written to the WordPress database via the Instructor's quiz-editing workflow and later retrieved and rendered without escaping into an HTML sink visible to all quiz viewers, creating a persistent, server-side stored XSS condition rather than a reflected or DOM-only variant.
Know when Learnpress 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Instructor role required (PR:L), victim must view quiz (UI:R), payload executes cross-user crossing scope boundary (S:C); no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
LearnPress WordPress Plugin before 4.4.6 contains a stored cross-site scripting vulnerability that allows authenticated attackers with the Instructor role to inject persistent malicious payloads by submitting unsanitized input into quiz question answer title fields. Attackers can store arbitrary JavaScript through the answer title parameter, which is rendered through an unescaped HTML sink to execute in the browsers of any user who views the affected quiz question, including students, other instructors, and administrators.
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.
More in Learnpress
View allSQL injection in LearnPress LMS plugin for WordPress (versions ≤ 4.2.7) allows unauthenticated remote attackers to injec
The LearnPress plugin for WordPress is vulnerable to Command Injection in all versions up to, and including, 4.2.5.7 via
The LearnPress plugin for WordPress is vulnerable to time-based SQL Injection via the ‘order_by’ parameter in all versio
SQL injection in the LearnPress LMS plugin for WordPress (versions up to and including 4.2.6.5) allows remote unauthenti
The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to SQL Injection via the 'c_fields' parameter o
The LearnPress WordPress plugin before 4.1.4 does not sanitise, validate and escape the id parameter before using it in
Unauthorized access to paid course content in LearnPress WordPress plugin (all versions before 4.4.4) allows any authent
LearnPress Wordpress plugin version prior and including 3.2.6.7 is vulnerable to SQL Injection. Rated high severity (CVS
The LearnPress WordPress plugin before 4.1.7.2 unserialises user input in a REST API endpoint available to unauthenticat
The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to Sensitive Information Exposure in all versio
Reflected cross-site scripting in the LearnPress WordPress plugin before 4.4.7 allows unauthenticated attackers to injec
Reflected Cross-Site Scripting in the LearnPress WordPress plugin before 4.4.1 lets a remote attacker execute arbitrary
EUVD-2026-70651
GHSA-7c9g-vc8f-3266
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB