Tutor LMS <= 3.9.7 — Missing Authorization to Authenticated (Subscriber+) Unauthorized Private Course Enrollment
CVE-2026-3358Published · Updated Action summary
Affected: ≤3.9.7Update to 3.9.8 or newer
All remediation steps- Severity
- Medium5.4
- CVSS
- 5.4CVSS 3.1 · CNA (Wordfence)
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:NWhat does this vector mean?
AV:NAttack vector- Network
AC:LAttack complexity- Low
PR:LPrivileges required- Low
UI:NUser interaction- None
S:UScope- Unchanged
C:LConfidentiality- Low
I:LIntegrity- Low
A:NAvailability- None
- Weakness
- CWE-862 Missing Authorization
- Required access
- Unknown
- Exploit prediction (EPSS)
- No score
- CISA KEV
- Not listed
On this page8
Am I affected?
Tutor LMS – eLearning and online course solution tutor
- Affected≤ 3.9.7
- Patched in3.9.8
Update to 3.9.8 or newer.
You are affected if you run ≤ 3.9.7. Version 3.9.8 and later are not affected by this issue.
- Check your version: in wp-admin go to Plugins → Installed Plugins and read the version under Tutor LMS – eLearning and online course solution.
- No admin access? Run a passive check of your site. It reads public files only.
What to do
- Update to version 3.9.8, or a newer patched version
- Rotate administrator passwords and application secrets if the site ran a vulnerable version while publicly reachable.
- Watch Tutor LMS – eLearning and online course solution to get an email when the next vulnerability is published.
Advisory
Source description from Wordfence Intelligence, credited to Mohammad Amin Hajian (mamadrce).
The Tutor LMS – eLearning and online course solution plugin for WordPress is vulnerable to unauthorized private course enrollment in all versions up to, and including, 3.9.7. This is due to missing post_status validation in the `enroll_now()` and `course_enrollment()` functions. Both enrollment endpoints verify the nonce, user authentication, and whether the course is purchasable, but fail to check if the course has a `private` post_status. This makes it possible for authenticated attackers with Subscriber-level access or above to enroll in private courses by sending a crafted POST request with the target course ID. The enrollment record is created in the database and the private course title and enrollment status are exposed in the subscriber's dashboard, though WordPress core access control prevents the subscriber from viewing the actual course content (returns 404). Enrollment in private courses should be restricted to users with the `read_private_posts` capability.
Exploits & references
Proof-of-concept & detection
No public proof-of-concept or detection template is known for this vulnerability.
Advisories & patches
- Advisorywordfence.com
Related CVEs
More in Tutor LMS – eLearning and online course solution
All 102| Severity | Vulnerability | CVE | Published |
|---|---|---|---|
| Medium6.5 | Insecure Direct Object Reference to Authenticated (Subscriber+) Sensitive Information Exposure via REST API Endpoints ≤4.1.2Update to 4.1.3 | CVE-2026-93779 | |
| Medium4.3 | 4.1.3 - Authenticated (Subscriber+) Information Exposure 1.6.4 – 4.1.3Update to 4.2.0 | CVE-2026-85570 | |
| Medium6.4 | Authenticated (Subscriber+) Stored Cross-Site Scripting ≤4.1.2Update to 4.1.3 | CVE-2026-111407 | |
| Medium4.3 | Insecure Direct Object Reference to Authenticated (Author+) Arbitrary Course Modification and Ownership Takeover via 'ID' Parameter ≤4.1.0Update to 4.1.1 | CVE-2026-92715 | |
| Medium6.4 | Authenticated (Subscriber+) Stored Cross-Site Scripting via display_name Parameter ≤4.1.0Update to 4.1.1 | CVE-2026-93681 |
- Medium6.5Insecure Direct Object Reference to Authenticated (Subscriber+) Sensitive Information Exposure via REST API Endpoints
≤4.1.2Update to 4.1.3
- Medium4.34.1.3 - Authenticated (Subscriber+) Information Exposure
1.6.4 – 4.1.3Update to 4.2.0
- Medium6.4Authenticated (Subscriber+) Stored Cross-Site Scripting
≤4.1.2Update to 4.1.3
- Medium4.3Insecure Direct Object Reference to Authenticated (Author+) Arbitrary Course Modification and Ownership Takeover via 'ID' Parameter
≤4.1.0Update to 4.1.1
- Medium6.4Authenticated (Subscriber+) Stored Cross-Site Scripting via display_name Parameter
≤4.1.0Update to 4.1.1
Same weakness (Missing Authorization)
All Missing Authorization| Severity | Vulnerability | CVE | Published |
|---|---|---|---|
| High7.2 | Unauthenticated Stored Cross-Site Scripting via Comment User-Agent Header | CVE-2026-120688 | |
| Critical9.8 | Unauthenticated Arbitrary File Upload via File Upload via Public Form Submission | CVE-2026-125055 | |
| Critical9.8 | Unauthenticated PHP Object Injection to Remote Code Execution via 'form' Parameter | CVE-2026-119077 | |
| Medium5.3 | Unauthenticated Sensitive Information Exposure in 'search' Parameter | CVE-2026-121518 |
- High7.2Unauthenticated Stored Cross-Site Scripting via Comment User-Agent Header
EZ SQL Reports Shortcode Widget and DB Backup
≤5.25.25Update to 5.26.45
- Critical9.8Unauthenticated Arbitrary File Upload via File Upload via Public Form Submission
Chatterbug Forms – Fast, Flexible WordPress Form Builder
≤1.0.2Update to 1.1
- Critical9.8Unauthenticated PHP Object Injection to Remote Code Execution via 'form' Parameter
ELEX WordPress HelpDesk & Customer Ticketing System
≤3.3.9Update to 3.4.0
- Medium5.3Unauthenticated Sensitive Information Exposure in 'search' Parameter
Customer Reviews for WooCommerce
≤5.127.0Update to 5.128.0
Timeline
CVE published
Severity medium, CVSS 5.4
Record last updated
Sources & licenses
Wordfence record- Vulnerability data
- Wordfence Intelligence. [object Object] Licensed under the CC BY-SA 4.0.
- CVE® identifiers
- [object Object]. Used under the CVE Program. CVE® is a registered trademark of The MITRE Corporation.
- CVSS / CWE
- National Vulnerability Database (NVD), shown unmodified. This product uses the NVD API but is not endorsed or certified by the NVD.
- VulnCrest content
- Summary, remediation guidance and page layout © VulnCrest. Not sourced from NVD.
