Executive brief
Tutor LMS is a WordPress plugin for creating and managing online courses. The plugin fails to properly restrict which instructors can view private courses, allowing any instructor to read course content belonging to other instructors. This could expose sensitive course materials, lesson plans, and student assessment data to unauthorized parties.
Technical details
The vulnerability is an Insecure Direct Object Reference (IDOR) affecting the WordPress REST API /wp-json/wp/v2/courses endpoint. The plugin does not enforce per-object ownership checks on the course content type; instead, it relies solely on WordPress's role-wide read_private_tutor_courses capability. An authenticated attacker with the instructor role can enumerate and read private courses owned by other instructors via the collection route (e.g., ?status=private) or target specific courses by ID, bypassing the plugin's rest_request_before_callbacks gate which only operates on single-object requests. Single-object read attempts and modification/deletion attempts on other instructors' courses correctly return 403 Forbidden. The vulnerability is fixed in version 4.0.6.
Affected products
- Tutor LMS Tutor LMS before 4.0.6
Timeline
- 2026-08-20: disclosed
- 2026-04-15: patched: Fixed in version 4.0.6