Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAuthenticate as instructor
-
DeliveryIdentify victim course ID
-
ExploitCraft GET request with attacker-controlled course parameter
-
InstallSubmit request to vulnerable endpoint (Quiz.php, Lesson.php, Course.php, Ajax.php, or Announcements.php)
-
C2get_course_id_by() extracts attacker-supplied course ID
-
Executecan_user_manage() authorizes against attacker-controlled ID
-
ImpactUnauthorized operation executes on victim course
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation requires that the attacker possess an active WordPress user account with instructor-level role (or above) on the targeted Tutor LMS installation. The vulnerability is triggered by supplying a |
| Impact | The CVSS score of 5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N) presents a moderate baseline, but this score contains a critical mismatch: the CVSS vector shows PR:N (no privileges required), yet the CVE description explicitly states the vulnerability requires 'authenticated attackers, with instructor-level access and above.' This indicates the CVSS vector data in the input is incorrect or incomplete; the actual risk profile should be evaluated as requiring PR:H (instructor-level privilege). Under the corrected assumption (PR:H), the real-world risk is HIGH for multi-instructor WordPress installations where instructor-to-instructor trust is not absolute. The attack vector is network-based and complexity is low - any authenticated instructor with knowledge of another instructor's course ID can immediately execute the attack via simple GET parameter manipulation, requiring no user interaction or exploit code. The impact is severe and asymmetric: an attacker can permanently delete course content, cascade-delete student attempt records, manipulate grades, and exfiltrate unpublished content, yet the integrity impact is scored as 'Low' in CVSS (likely because the scope is unchanged and only one course's content is affected per request). However, in the context of multi-course platforms, the cumulative impact across multiple courses, combined with data destruction and grade manipulation, exceeds typical 'Low' integrity thresholds in practice. The absence of EPSS score and KEV status suggests this vulnerability may have been recently disclosed or is not yet in active exploitation campaigns, reducing the exploitation probability signal. For organizations relying on Tutor LMS with multiple instructors, this is a CRITICAL PRIORITY vulnerability despite the moderate CVSS number, as it enables course sabotage and data destruction with minimal attacker effort. |
| Exploit ScenarioDerived | An instructor at a competing online education provider, having obtained a WordPress account with instructor-level access to a shared Tutor LMS installation, navigates to the course editing interface and modifies the GET parameter |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 13, 2026
Authenticated instructors in Tutor LMS versions up to 3.9.9 can manipulate course ownership logic via an attacker-controlled GET parameter to perform unauthorized operations on other instructors' courses, including deleting lessons, quizzes, assignments, and student data, or modifying course content and grades. The vulnerability stems from the get_course_id_by() function unconditionally trusting user-supplied input instead of validating course ownership, bypassing the plugin's primary authorization gate. No public exploit code or active exploitation has been identified at time of analysis.
RemediationAI
Update the Tutor LMS plugin to a patched version once released by Themeum - no specific fix version is confirmed in the provided data, so monitor the official plugin repository and Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/55924ea3-373c-4297-a958-5670def1f6c0 for patch availability. As an immediate compensating control, restrict instructor-level WordPress user role assignments to trusted administrators only and implement WordPress user role management policies that limit the number of users with instructor capabilities. Additionally, if the plugin supports it, implement course-level access controls or audit logging to detect unauthorized course modifications. These measures do not eliminate the vulnerability but reduce the attacker pool from all instructors to only those with administrative trust. Database backups should be increased in frequency prior to patching to enable rapid recovery from course content deletion attacks. Note that disabling the plugin entirely is the only way to eliminate exploitation risk until a patch is available, though this will render course management functionality unavailable.
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
Tutor LMS is a WordPress plugin that provides learning management system functionality, including course creation, lesson management, quiz administration, and student grade tracking. The vulnerability exists in the authorization architecture: the get_course_id_by() function in the Utils class accepts a user-supplied course GET parameter and returns it directly without validation, which is then passed to the can_user_manage() function - the sole authorization gate for instructor-level operations. The can_user_manage() function checks whether the current user is an instructor for the supplied course ID, but because that course ID is attacker-controlled, an authorized instructor can claim to manage any course in the system. This Insecure Direct Object Reference (CWE-639) pattern is repeated across multiple content handlers in classes such as Lesson, Quiz, Course, Ajax, and Announcements, each of which retrieves the course ID from the GET parameter and uses it in authorization decisions rather than deriving the course ownership from the target content object itself.
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:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
DescriptionCVE.org
The Tutor LMS - eLearning and online course solution plugin for WordPress is vulnerable to Insecure Direct Object Reference in versions up to and including 3.9.9. This is due to the get_course_id_by() function unconditionally trusting the user-supplied course GET parameter as the authoritative course ID for content ownership lookups, which is then consumed by can_user_manage(), the plugin's sole authorization gate for instructor-level operations, causing it to evaluate instructor membership against the attacker-controlled course rather than the course that actually owns the target content object. This makes it possible for authenticated attackers, with instructor-level access and above, to perform unauthorized operations on any other instructor's course content, including permanently deleting lessons, assignments, quizzes (with cascading deletion of all student attempt data), topics, announcements, and Q&A threads, as well as creating or modifying lessons, topics, and announcements in victim courses, manipulating student quiz grades, and reading unpublished lesson and quiz content.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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
Tutor LMS plugin for WordPress versions up to 3.9.8 allow authenticated attackers to manipulate course content structure
EUVD-2026-29914
NVD
CVE.org
EPSS
Vulnrichment
GitHub PoC
Exploit-DB