{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-93779","assignerOrgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","state":"PUBLISHED","assignerShortName":"Wordfence","dateReserved":"2026-09-18T17:52:10.222Z","datePublished":"2026-11-07T04:27:13.948Z","dateUpdated":"2026-11-07T04:27:13.948Z"},"containers":{"cna":{"providerMetadata":{"orgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","shortName":"Wordfence","dateUpdated":"2026-11-07T04:27:13.948Z"},"affected":[{"vendor":"themeum","product":"Tutor LMS – eLearning and online course solution","versions":[{"version":"0","status":"affected","lessThanOrEqual":"4.1.2","versionType":"semver"}],"defaultStatus":"unaffected"}],"descriptions":[{"lang":"en","value":"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.2 via the init_routes due to missing validation on a user controlled key. This makes it possible for authenticated attackers, with subscriber-level access and above, to read paid course lesson and topic content without enrollment, retrieve quiz answer keys including the is_correct field before attempting a quiz, and enumerate the email addresses, usernames, and registration data of other users including instructors and administrators. Exploitation requires that the attacker hold a valid Tutor LMS API key/secret pair, which is issued to subscriber-level users through the plugin's API key management feature."}],"title":"Tutor LMS <= 4.1.2 - Insecure Direct Object Reference to Authenticated (Subscriber+) Sensitive Information Exposure via REST API Endpoints","references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/b0c8b586-784e-43a4-8bb8-c7cb771476a4?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/tutor/tags/4.0.9/classes/RestAPI.php#L460"},{"url":"https://plugins.trac.wordpress.org/browser/tutor/tags/4.0.9/classes/RestAPI.php#L376"},{"url":"https://plugins.trac.wordpress.org/browser/tutor/tags/4.0.9/classes/RestAPI.php#L418"},{"url":"https://plugins.trac.wordpress.org/browser/tutor/tags/4.0.9/restapi/REST_Course.php#L303"},{"url":"https://plugins.trac.wordpress.org/browser/tutor/tags/4.0.9/restapi/REST_Quiz.php#L209"},{"url":"https://plugins.trac.wordpress.org/browser/tutor/tags/4.0.9/restapi/REST_Author.php#L43"},{"url":"https://plugins.trac.wordpress.org/browser/tutor/tags/4.0.9/restapi/RestAuth.php#L331"},{"url":"https://plugins.trac.wordpress.org/browser/tutor/tags/4.0.9/classes/RestAPI.php#L135"},{"url":"https://plugins.trac.wordpress.org/changeset?reponame=&old=3748228%40tutor&new=3748228%40tutor"}],"problemTypes":[{"descriptions":[{"lang":"en","description":"CWE-639 Authorization Bypass Through User-Controlled Key","cweId":"CWE-639","type":"CWE"}]}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","baseScore":6.5,"baseSeverity":"MEDIUM"}}],"credits":[{"lang":"en","type":"finder","value":"n4ct"}],"timeline":[{"time":"2026-09-18T18:07:14.000Z","lang":"en","value":"Vendor Notified"},{"time":"2026-11-06T15:56:29.000Z","lang":"en","value":"Disclosed"}]}}}