Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft lesson URL with payload in 'tab' param
-
DeliveryDeliver link via phishing to victim
-
ExploitEmpty nav-items bypasses in_array() tab validation
-
ExecutionReflected payload reaches unescaped sink
-
ImpactScript executes in victim browser session
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 is constrained to lesson pages whose nav-items array is empty, which the description states occurs when a lesson has no post content, no attachments, and comments are disabled or the viewer is not logged in; only under that state does the empty array bypass the in_array() validation on the 'tab' parameter and let the raw attacker value reach the output sink. Additional limiting factors are that the attack requires victim user interaction (clicking an attacker-supplied link, per UI:R) and is reflected rather than stored, so each victim must be individually lured; no authentication is required of the attacker (PR:N). These conditions make the realistic attack surface narrower than a typical always-on reflected XSS. |
| Impact | This is a genuinely moderate, not high-priority, issue and the CVSS base score of 4.7 (Medium) is a fair reflection of real-world risk. The CVSS vector CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N shows a network-reachable, unauthenticated flaw (PR:N) but with two significant dampeners: high attack complexity (AC:H) and required user interaction (UI:R). The AC:H is well-justified by the description, which states exploitation only works when the targeted lesson page has an empty nav-items array - a non-default, situational state. No EPSS score was provided in the input, and there is no CISA KEV listing and no indication of public exploit code, so the exploitation status is: no public exploit identified at time of analysis. No SSVC decision data was supplied. The signals are internally consistent - a reflected XSS requiring a victim to click an attacker-supplied link against a specific page state is characteristically low-to-moderate risk, and all sources (reflected class, UI:R, AC:H, no KEV/EPSS/POC) agree. The only caveat is that the scope-change (S:C) and the broad WordPress deployment surface of the product modestly raise exposure. Overall this is a legitimate finding to patch on a normal cycle rather than an emergency. |
| Exploit ScenarioDerived | An attacker crafts a URL to a Tutor LMS lesson page that has no content, no attachments, and comments disabled (or is viewed while logged out), appending a malicious script payload to the 'tab' parameter. The attacker distributes this link via phishing or a malicious post and tricks a victim into clicking it; because the empty nav-items state bypasses the in_array() tab validation, the raw payload is reflected into the page and executes in the victim's browser. No public exploit code was identified in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Reflected cross-site scripting in the Tutor LMS - eLearning and online course solution WordPress plugin affects all versions up to and including 4.1.0, allowing unauthenticated attackers to inject arbitrary web scripts through the 'tab' parameter. Exploitation requires user interaction (a victim clicking an attacker-supplied link), and the CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N, base 4.7 Medium) reflects real but constrained risk: the payload only reaches the output sink on lesson pages where the nav-items array is empty, which occurs when a lesson has no post content, no attachments, and comments are disabled or the viewer is not logged in. No confirmed active exploitation (not in CISA KEV) and no public exploit code identified at time of analysis.
RemediationAI
Upgrade Tutor LMS beyond 4.1.0 as soon as a patched release is available from the vendor. Upstream fix available (PR/commit); released patched version not independently confirmed - the corrective change is published in the plugin Trac changeset https://plugins.trac.wordpress.org/changeset/3730615/tutor/trunk/templates/learning-area/lesson/content.php, and the vendor/Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/4322fce1-0403-4458-82e3-7d374ab724c9?source=cve should be consulted for the exact first fixed version before relying on a specific number. Where immediate upgrade is not possible, note that exploitation requires the empty nav-items precondition: enabling comments on lessons or ensuring lessons have post content or attachments causes the nav-items array to be non-empty and blocks the raw 'tab' value from reaching the sink, though this is operationally heavy (comment moderation/spam exposure, content authoring effort) and should be treated only as a stopgap. Additional compensating controls include blocking or sanitizing requests that carry a 'tab' parameter on lesson endpoints at the WAF/reverse-proxy layer (risk: false positives on legitimate tab navigation) and deploying a Content-Security-Policy that disallows inline and third-party script execution on lesson pages (trade-off: may break plugin scripts and inline rendered widgets). Because the attack is reflected and requires the victim to click a crafted link, user-awareness reminders about unsolicited lesson links offer marginal but non-zero risk reduction.
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 flaw is a classic CWE-79 improper neutralization of input during web page generation, rooted in the Tutor LMS lesson template rendering path. The plugin builds a lesson navigation array and validates the user-supplied 'tab' parameter against it using in_array(); when a lesson has no post content, no attachments, and comments are either disabled or hidden from logged-out viewers, that nav-items array is empty, so the in_array() check cannot match any legitimate tab value and the raw, unsanitized request value passes through to the rendered output. The vulnerable sink is in the lesson content template (templates/learning-area/lesson/content.php, referenced at lines 27 and 56 in tag 4.0.9), with the tab-handling logic in classes/Lesson.php around line 1018. Because the data is reflected rather than stored, each victim must be individually lured, and the required victim interaction (UI:R) along with the narrow empty-nav-items precondition (AC:H) keeps the practical surface smaller than a typical always-on reflected XSS in a WordPress plugin. The CPE cpe:2.3:a:themeum:tutor_lms_-_elearning_and_online_course_solution confirms the affected vendor product is Themeum's Tutor LMS plugin.
Know when Tutor Lms Elearning And Online Course Solution 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:H/PR:N/UI:R/S:C/C:L/I:L/A:N
AV:N and PR:N since any unauthenticated attacker can craft the link; AC:H because the lesson page must be in the specific empty nav-items state; UI:R as the victim must click; S:C and C:L/I:L for browser-context script execution.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Tutor LMS - eLearning and online course solution plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via the 'tab' parameter in all versions up to, and including, 4.1.0 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a link. Exploitation requires the targeted lesson page to have an empty nav-items array - a condition that occurs naturally when a lesson has no post content, no attachments, and comments are disabled or the viewer is not logged in - which bypasses the in_array() tab validation and allows the raw attacker-controlled value to reach the sink.
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.
Remote code execution is achievable in Tutor LMS WordPress plugin (≤4.0.7) via a PHP Object Injection flaw in the withdr
Unauthenticated attackers can overwrite billing profile data (name, email, phone, address) for any WordPress user with a
Unauthenticated remote PHP function invocation in the Tutor LMS WordPress plugin (all versions up to and including 4.0.5
Second-order SQL injection in Tutor LMS for WordPress (all versions through 4.0.0) allows authenticated attackers with c
Tutor LMS WordPress plugin versions up to 4.0.8 expose arbitrary users' email addresses and Tutor profile phone numbers
SQL injection in Tutor LMS plugin for WordPress through version 3.9.8 allows authenticated Admin-level attackers to extr
Stored Cross-Site Scripting in Tutor LMS (WordPress plugin by Themeum) versions through 3.9.13 allows authenticated atta
Stored cross-site scripting in the Tutor LMS - eLearning and Online Course Solution WordPress plugin (all versions up to
Reflected cross-site scripting in the Tutor LMS WordPress plugin (all versions up to and including 4.0.8) lets unauthent
DOM-based cross-site scripting in the Tutor LMS eLearning and online course plugin for WordPress (versions up to and inc
Tutor LMS plugin for WordPress up to version 3.9.7 allows authenticated subscribers to enroll in private courses due to
Authenticated instructors in Tutor LMS versions up to 3.9.9 can manipulate course ownership logic via an attacker-contro
EUVD-2026-100787
GHSA-4vgh-wm7j-x4jg
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB