---
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'
epss: 0.00204
epssPercentile: 0.09664
---

## Overview

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 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.

## Affected

- `tutor_lms_elearning_and_online_course_solution <= 4.1.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
