| Type | software |
| Product Environment | web |
| Product Name | Frappe LMS |
| Product Vendor | Frappe |
| Product Version | 2.40.0 |
| Product Link | https://github.com/frappe/lms |
| Vulnerability Name | Improper Access Control |
| Severity | High |
|
CVSS String
|
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| CVSS Score | 7.5 |
| CVE ID | - |
| Vendor Acknowledgement | No |
|
Affected digital Assets
|
10 |
|
Affected Users
|
50000 |
| Date of Reporting | Nov 27, 2025 |
| PoC Exploit | https://gist.github.com/0xHamy/83abdce4a472b80ecae8c436929aeecf |
| Credit | 0xhamy |
Frappe LMS version 2.40.0 is affected by an access control vulnerability where media uploaded by instructors to course details and quizzes is publicly accessible to unauthenticated users.
This includes:
All such media is stored under /files/ and is accessible without authentication if the filename or URL is known or guessed.
Two related behaviors share the same root cause: instructor-uploaded media for course and quiz content is served from a publicly accessible file endpoint without any authorization checks.
Course details (including unpublished courses)
/lms/courses/new/edit or /lms/courses/COURSE_NAME/edit, media uploaded to fields like Course description is stored under /files/.Quiz media
/files/.Since quiz content may include exam questions, diagrams, or answer hints, and course detail media may be intended for limited audiences, this leads to a significant information disclosure issue.
Log in as an instructor.
/lms/courses.Create a new course and upload media to course details.
/lms/courses/new/edit/files/FILENAME.extEnsure the course is unpublished.
Access the media without authentication.
http://localhost:8000/files/FILENAME.extLog in as an instructor and create a quiz.
/lms/quizzes and click the "Create" button in the top-right corner.Add a quiz question with media.
/lms/quizzes/Test), click "New Question" to create a question for the quiz./files/, making them globally accessible by URL.Access quiz media without authentication.
http://localhost:8000/files/FILENAME.extBecause quizzes often contain assessment content and may be reused, the worst-case confidentiality impact is high.
/files/, especially: