{"id":"CVE-2026-92715","title":"Tutor LMS <= 4.1.0 - Insecure Direct Object Reference to Authenticated (Author+) Arbitrary Course Modification and Ownership Takeover via 'ID' Parameter","summary":"The Tutor LMS – eLearning and online course solution plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to, and including, 4.1.0 via the 'ID' parameter due to missing validation on a user controlled…","severity":"medium","cvss":4.3,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","cvssSource":"cna","cwe":["CWE-639"],"vendor":"themeum","product":"Tutor LMS – eLearning and online course solution","affected":["tutor_lms_elearning_and_online_course_solution <= 4.1.0"],"published":"2026-10-17","updated":"2026-10-17","sourceUpdated":"2026-10-17T03:43:27.343Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-92715","references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/12f093bd-5230-4103-b571-80543c1b43cf?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/tutor/tags/4.0.8/classes/Course.php#L1053"},{"url":"https://plugins.trac.wordpress.org/browser/tutor/tags/4.0.8/classes/Course.php#L1009"},{"url":"https://plugins.trac.wordpress.org/browser/tutor/tags/4.0.8/classes/Course.php#L850"},{"url":"https://plugins.trac.wordpress.org/browser/tutor/tags/4.0.8/classes/Course.php#L303"},{"url":"https://plugins.trac.wordpress.org/changeset/3730615/tutor/trunk/classes/Course.php"}],"tags":["cve.org"],"ingestedAt":"2026-10-17T03:58:44.710Z","slug":"CVE-2026-92715","body":"## Overview\n\nThe Tutor LMS – eLearning and online course solution plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to, and including, 4.1.0 via the 'ID' parameter due to missing validation on a user controlled key. This makes it possible for authenticated attackers, with author-level access and above, to modify arbitrary courses created by other instructors — overwriting their title, content, and status — and reassign ownership of those courses to themselves. This is possible because Input::sanitize_array() preserves attacker-supplied POST keys (including 'ID') without stripping them, and WordPress interprets a non-empty ID in the wp_insert_post() argument array as an update to the existing post rather than a new insert.\n\n## Affected\n\n- `tutor_lms_elearning_and_online_course_solution <= 4.1.0`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":24,"depthScoreParts":{"impact":23.7,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}