Sceawere

Vulnerability Detail

CVE-2026-18439UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV

Tutor LMS IDOR Vulnerability

Vulnerability Metadata

Severity
Medium
Score / CVSS
4.3
Creation Date
2h ago
Vendor
themeum
Product
Tutor LMS – eLearning and online course solution
Attack Type
CWE-639 Authorization Bypass Through User-Controlled Key
Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
Attack Complexity
LOW

Narrative and Response

Description

The Tutor LMS – eLearning and online course solution plugin for WordPress is vulnerable to Insecure Direct Object Reference in versions up to, and including, 4.0.7 via the tutor_quiz_builder_save AJAX action due to missing validation that nested question_id, answer_id, deleted_question_ids[], and deleted_answer_ids[] values in the submitted payload belong to a quiz/topic/course the requester is authorized to manage. The handler only validates the top-level course_id, topic_id, and (when supplied) payload['ID'], but the nested identifiers are passed straight into $wpdb->update/DELETE statements in QuizBuilder::save_questions(), QuizBuilder::save_question_answers(), and QuizBuilder::handle_delete(). This makes it possible for authenticated attackers, with Instructor-level access and above, to overwrite the content and re-parent arbitrary quiz questions/answers belonging to other instructors or administrators, and to delete arbitrary quiz question and answer rows.

Executive Summary

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Executive Summary Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Technical Details

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Detailed Technical Analysis Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Mitigations

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Remediation & Mitigations Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

References

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Intelligence References Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Additional Metadata

{
  "score": "4.3",
  "pubDate": "2026-09-22T08:16:39.080Z",
  "pubdate": "2026-09-22T08:16:39.080Z",
  "executiveSummary": "Tutor LMS, an eLearning plugin for WordPress, contains an Insecure Direct Object Reference (IDOR) vulnerability in versions up to and including 4.0.7.\nThe vulnerability exists within the tutor_quiz_builder_save AJAX action, which fails to adequately validate ownership of nested quiz components.\nThe flaw allows authenticated users with Instructor-level privileges or higher to manipulate quiz data belonging to other users, including administrators.\nSuccessful exploitation enables unauthorized modification, re-parenting, or deletion of quiz questions and answers across the entire platform.\nThis represents a significant integrity and availability risk, as attackers can sabotage existing educational content or compromise the assessment infrastructure of other instructors.\nExploitation requires authenticated access, specifically the capability to trigger the quiz builder functionality, which is natively accessible to instructors.",
  "technicalDetails": "The vulnerability stems from improper input validation logic within the tutor_quiz_builder_save AJAX action. While the handler correctly validates the top-level parameters—specifically 'course_id', 'topic_id', and the primary quiz 'ID'—it fails to perform authorization checks on nested identifiers passed in the payload.\nSpecifically, the input fields 'question_id', 'answer_id', 'deleted_question_ids[]', and 'deleted_answer_ids[]' are processed by the backend without verifying that these resource IDs are legitimately associated with the quiz or course owned by the authenticated requester.\nThe vulnerable code paths reside in 'QuizBuilder::save_questions()', 'QuizBuilder::save_question_answers()', and 'QuizBuilder::handle_delete()'. These methods pass the unvalidated nested identifiers directly into SQL operations, including '$wpdb->update' and '$wpdb->delete' statements.\nAn attacker can exploit this by intercepting a legitimate quiz-saving request and modifying the nested ID fields. By supplying an ID belonging to a resource managed by another instructor, the attacker forces the application to execute database modifications on unauthorized records.\nThe attack flow follows these steps: 1) The attacker initiates an authorized 'tutor_quiz_builder_save' request; 2) The payload is injected with arbitrary 'question_id' or 'answer_id' values belonging to victim quizzes; 3) The server-side logic trusts the provided IDs because the top-level 'course_id' is valid for the attacker's own account; 4) The plugin executes 'UPDATE' or 'DELETE' queries against the database records associated with the victim's quiz.\nThis allows for several post-exploitation impacts: overwriting the text or configuration of an arbitrary question, re-parenting a question to move it into the attacker's own quiz structure, or permanent deletion of questions and answers from external courses. This vulnerability effectively bypasses the multi-tenant isolation expected in an LMS environment."
}
CVE-2026-18439: Tutor LMS IDOR Vulnerability (MEDIUM Severity, CVSS: 4.3) | Sceawere