Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker registers or compromises instructor-role account
-
DeliveryInject malicious JavaScript into quiz field via plugin interface
-
ExploitPayload persisted to database without sanitization
-
ExecutionVictim (including admin) visits affected quiz page
-
PersistStored script executes in victim browser
-
ImpactSession token exfiltrated or admin-level action performed
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 a valid instructor-role account on the target WordPress site, as the instructor role is specifically what receives the unfiltered HTML storage capability in single-site configurations. The target site must be running a standard single-site WordPress installation - WordPress multisite (network) installations are not affected because the capability is not granted in that context, and any site with DISALLOW_UNFILTERED_HTML defined in wp-config.php is also not affected. A victim user must actively visit the page where the malicious payload was stored (UI:R). Exploitation is therefore blocked on all multisite WordPress networks and all installations with the DISALLOW_UNFILTERED_HTML hardening constant, which substantially narrows the realistic pool of vulnerable targets relative to the total Masteriyo LMS install base. |
| Impact | The NVD-provided CVSS base score of 6.1 with vector AV:N/AC:L/PR:N/UI:R/S:C reflects a Scope:Changed impact but incorrectly records PR:N - the description explicitly requires an instructor-role account, indicating the vector should carry PR:L, which would lower the score to approximately 5.4. This discrepancy between the published vector and the described exploitation conditions is a meaningful signal: even a mid-sized municipal IT team in opole running a WordPress e-learning portal should treat this as urgent patching but not as a zero-prerequisite emergency. The EPSS score of 0.16% at the 6th percentile confirms low observed exploitation probability in the wild, and the absence from CISA KEV suggests no confirmed mass exploitation. However, the publicly available POC (sourced from WPScan) meaningfully lowers the bar for less-skilled attackers, particularly on sites with open instructor self-registration. The combination of POC availability, scope-changed CVSS, and broad WordPress deployment makes this a genuine patching priority, while the instructor-role prerequisite and single-site scope restriction meaningfully constrain the realistic attack surface. |
| Exploit ScenarioDerived | An attacker who holds or registers a legitimate instructor-role account on a vulnerable single-site Masteriyo LMS installation crafts a quiz field containing a JavaScript payload - such as a cookie-stealing script that exfiltrates document.cookie to an attacker-controlled endpoint. The payload is saved to the database and served unescaped to every subsequent visitor of that quiz page. When an administrator visits the page, their session token is silently exfiltrated, granting the attacker full administrative access to the WordPress site. A publicly available POC from WPScan documents this attack path. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 17, 2026
Stored Cross-Site Scripting in the Masteriyo LMS WordPress plugin (all versions before 2.3.3) allows instructor-role users to inject persistent malicious scripts into quiz fields that execute in the browsers of any page visitor, including administrators. The vulnerability stems from the plugin granting instructors unfiltered HTML storage capability without sanitizing or escaping output, creating a privilege-escalation path from instructor to effective administrator compromise via session hijacking. A publicly available proof-of-concept exists per WPScan; EPSS is low at 0.16%, and the flaw is not listed in CISA KEV, though POC availability elevates practical risk for unpatched single-site deployments.
RemediationAI
Upgrade the Masteriyo LMS WordPress plugin to version 2.3.3 or later, which is confirmed as the vendor-released patched version per the WPScan advisory at https://wpscan.com/vulnerability/08c31101-ee38-46e9-b451-abb1ed70079c/. For sites unable to update immediately, adding define('DISALLOW_UNFILTERED_HTML', true) to wp-config.php will revoke unfiltered HTML capability from instructor-role users and eliminate the attack vector - note this may restrict rich-text editing for instructors across all WordPress functionality, not just the Masteriyo quiz field, which could impact course authoring workflows. As an additional compensating control, restricting instructor account creation to administratively provisioned accounts (disabling open registration for that role) shrinks the attacker pool to already-trusted parties and reduces exploitation probability substantially.
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
Masteriyo LMS (CPE: cpe:2.3:a:unknown:masteriyo_lms:*:*:*:*:*:*:*:*) is a WordPress learning management system plugin offering quiz and course management functionality. The root cause maps to CWE-79 (Improper Neutralization of Input During Web Page Generation): quiz field content submitted by instructor-role users is persisted to the WordPress database and subsequently rendered to visitors without output escaping or HTML sanitization. WordPress natively provides the DISALLOW_UNFILTERED_HTML constant to restrict raw HTML storage to privileged roles, but this protection is absent in default single-site configurations, meaning the plugin's grant of unfiltered HTML capability to instructors is unrestricted unless explicitly overridden. Multisite WordPress network installations enforce this restriction automatically, making them immune to this attack path.
Know when Masteriyo Lms 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:N/UI:R/S:C/C:L/I:L/A:N
Instructor-role account required elevates PR to L; stored XSS crosses scope boundary into victim browser; no availability impact applies.
Primary rating from Vendor (WPScan).
CVSS VectorVendor: WPScan
Lifecycle Timeline
4DescriptionCVE.org
The Masteriyo LMS WordPress plugin before 2.3.3 does not sanitise and escape a quiz field before outputting it back in a page, and grants its instructor role the ability to store unfiltered HTML, allowing such users to perform Stored Cross-Site Scripting attacks against any visitor of the affected page, including administrators. This affects default single-site installations. Sites running multisite, or defining DISALLOW_UNFILTERED_HTML, are not affected as the capability is not granted there.
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 Masteriyo Lms
View allUnauthenticated arbitrary user session termination (force-logout) in the Masteriyo LMS WordPress plugin before version 2
Stored Cross-Site Scripting in the Masteriyo LMS WordPress plugin before version 3.4.0 allows any user holding the cours
Unauthenticated access to Masteriyo LMS WordPress plugin's course-progress REST API controller exposes all users' learni
Unauthenticated arbitrary file upload in the Masteriyo LMS WordPress plugin (versions <= 2.3.2) lets remote attackers up
Enrollment record exposure in the Masteriyo LMS WordPress plugin (versions 1.3.1 through below 3.4.0) lets unauthenticat
PHP Object Injection in the Masteriyo LMS WordPress plugin (versions <= 3.4.0) allows remote attackers to inject a craft
Privilege escalation in the ThemeGrill Masteriyo LMS WordPress plugin (versions up to and including 2.2.0) allows authen
Any authenticated user of a WordPress site running the Masteriyo LMS plugin before 3.4.2 can retrieve the correct answer
Masteriyo LMS, a WordPress learning-management plugin, discloses the course-progress and learning-activity records of ev
Broken access control in the Masteriyo - LMS WordPress plugin (versions up to and including 2.1.5) allows remote unauthe
Stored Cross-Site Scripting in Masteriyo LMS WordPress plugin versions up to and including 2.3.0 allows authenticated su
Unauthenticated broken authentication in the Masteriyo LMS WordPress plugin (versions ≤2.1.8) stems from improper JWT si
EUVD-2026-59915
GHSA-9qrh-j6xc-w4qf
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB