Chamilo LMS from 2.0.0-alpha.1 before 2.0.0-RC.3 contains a missing authorization vulnerability in legacy AJAX handlers under public/main/inc/ajax/ that exposes user names and certificates. Unauthenticated or low-privileged users can call actions like get_users_by_group_course, user_by_all_roles, and export_all_certificates to harvest user names and other learners' certificate PDFs.
Chamilo LMS from 2.0.0-alpha.4 before 2.0.0-RC.3 contains a missing authorization vulnerability in AiController::openAnswerGrade that allows any authenticated user to obtain AI grading of other students' exam attempts. Attackers can enumerate exeId and questionId values sent to the open_answer_grade endpoint to expose other students' answers through feedback and consume AI quota.
Chamilo LMS versions from 2.0.0-alpha.1 up to but not including 2.0.0-RC.3 have a missing access control vulnerability in the GradebookController. This flaw allows unauthenticated users to modify gradebook certificates by accessing the set_default_certificate endpoint with arbitrary course and document IDs. The vulnerability has a medium severity with a CVSS score of 6.9.
A vulnerability was determined in Chamilo LMS up to 1.11.40/2.0.3/3.0.1. This issue affects the function TicketManager::addProject of the file main/inc/lib/TicketManager.php of the component Ticket Module. Executing a manipulation of the argument Name can lead to cross site scripting. The attack may be performed from remote. The exploit has been publicly disclosed and may be utilized. This patch is called 6dfa0f4de45afc1b27333304b4cd4532db478f74/dd3e4d32971efca4197eb2df97f69de25a786e3c/119773d45c31da53b44cbfdb3f4910bc983cc7b0/cb6fe2127e587603451c609b4ed78c0293fcc3fa. It is best practice to apply a patch to resolve this issue.
Chamilo LMS versions prior to 2.0.1 contain a critical path traversal vulnerability (CWE-22) that allows unauthenticated remote attackers to execute arbitrary code on the server. The vulnerability is fixed in version 2.0.1. The advisory does not specify the affected endpoint or exploitation details. The CVSS score is 9.8, indicating a critical severity with high impact on confidentiality, integrity, and availability.
Chamilo LMS is an open-source learning management system. From 2.0.0 through at least 2.1.0, Chamilo LMS stores private Message.content without server-side sanitization and renders it as HTML in assets/vue/views/message/MessageShow.vue and public/main/template/default/message/view_message.html.twig. An authenticated low-privilege user, including a student, can directly address crafted message content to an administrator because the message creation flow permits a sender to select another user as the recipient. The content executes in the recipient's browser when the recipient opens the routine inbox or message view, without requiring a link click, and can expose session credentials or permit actions as the administrator. This vulnerability is fixed in 2.0.1.
Chamilo LMS versions 1.11.0 through 1.11.40 and 2.0.0 through 2.0.3 contain a stored cross-site scripting (XSS) vulnerability. This flaw allows unauthenticated attackers to inject malicious scripts into survey answers by computing deterministic invitation codes and bypassing authorization checks. The injected scripts execute in the browsers of teachers or administrators viewing survey reports, potentially enabling persistent backdoor account creation via the victim's authenticated session.
Chamilo version 1.11.40 and earlier are vulnerable to authenticated remote code execution in the main/inc/ajax/lang.ajax.php path. This endpoint is protected only by `api_protect_course_script(true)`, which means any authenticated user enrolled in a course (student, teacher, DRH) can reach it.
Chamilo LMS versions 1.11.38 and earlier contain a stored cross-site scripting vulnerability in the user registration form that allows any unauthenticated attacker to execute arbitrary JavaScript in an administrator's browser session, leading to full platform admin account takeover. This has been patched in 1.11.40.
Chamilo LMS versions prior to 2.0.0-RC.3 contain an improper privilege management vulnerability in the PUT /api/users/{id} endpoint. Authenticated users with the ROLE_STUDENT can escalate their privileges to ROLE_ADMIN by modifying the roles field on their own user record. This is due to insufficient authorization checks and the roles field being writable. Exploitation grants full administrative control over the platform, including access to all courses, user data, grades, and administrative settings. The vulnerability has been fixed in version 2.0.0-RC.
Chamilo LMS versions prior to 2.0.0-RC.3 contain an OS Command Injection vulnerability in the gradebook.ajax.php endpoint. The vulnerability arises because the course code from the session variable is directly concatenated into a shell_exec() command without proper sanitization. An attacker able to manipulate session data can inject shell metacharacters, leading to arbitrary command execution on the server. This can result in full system compromise, including reading sensitive files, altering the application or database, and disrupting server availability. The issue is fixed in version 2.
Chamilo LMS versions prior to 2.0.0-RC.3 contain an authorization bypass vulnerability in the /api/course_rel_users endpoint. An authenticated attacker can manipulate the user parameter to enroll arbitrary users into courses without proper authorization. This occurs because the backend does not verify ownership or permission for the user ID supplied. The vulnerability allows unauthorized access to course materials and compromises enrollment controls. The issue is fixed in version 2.0.0-RC.
Chamilo LMS versions prior to 2.0.0-RC.3 contain an Insecure Direct Object Reference (IDOR) vulnerability in the notebook module. This flaw allows any authenticated student to access private course notes of other users by manipulating the notebook_id parameter in the editnote action. The application does not verify ownership when reading notes, exposing the full title and HTML content to unauthorized users. Ownership checks exist only for updating or deleting notes, not for reading them. This vulnerability has been fixed in version 2.0.0-RC.
Chamilo LMS is an open-source learning management system. In versions prior to 2.0.0-RC.3, a Stored Cross-Site Scripting (XSS) vulnerability exists in the social post attachment upload functionality, where an authenticated user can upload a malicious HTML file containing JavaScript via the /api/social_post_attachments endpoint. The uploaded file is served back from the application at the generated contentUrl without sanitization, content type restrictions, or a Content-Disposition: attachment header, causing the JavaScript to execute in the browser within the application's origin. Because the payload is stored server-side and runs in the trusted origin, an attacker can perform session hijacking, account takeover, privilege escalation (if an admin views the link), and arbitrary actions on behalf of the victim. This issue has been fixed in version 2.0.0-RC.3.
Chamilo LMS versions prior to 2.0.0-RC.3 contain an unauthenticated Server-Side Request Forgery (SSRF) vulnerability in the PENS plugin endpoint. This endpoint accepts a user-controlled URL parameter that the server fetches without filtering internal or private IP addresses. Exploitation allows attackers to probe internal network services, access cloud metadata endpoints to steal credentials, or trigger state-changing operations on internal services without authentication. The issue has been fixed in version 2.0.0-RC.3.
Chamilo LMS version 2.0-RC.2 contains a vulnerability where a critical AJAX endpoint (install.ajax.php) is accessible without authentication. This endpoint's test_mailer action accepts arbitrary SMTP server details from unauthenticated POST requests, enabling Server-Side Request Forgery (SSRF) and abuse as an open email relay. This can lead to phishing and spam campaigns originating from the server and may disclose internal network information through error messages. The issue is fixed in version 2.0.0-RC.
Chamilo LMS version 2.0.0-RC.2 contains a SQL Injection vulnerability in the statistics AJAX endpoint. This vulnerability is due to incomplete sanitization of the date_start and date_end parameters in the users_active action, allowing an authenticated admin to perform time-based blind SQL injection. The issue was fixed in version 2.0.0. The vulnerability has a CVSS score of 7.1, indicating high severity.
Chamilo LMS is a learning management system. Prior to 1.11.38 and 2.0.0-RC.3, multiple files use simplexml_load_string() without XXE protection. With LIBXML_NOENT flag, arbitrary server files can be read. This vulnerability is fixed in 1.11.38 and 2.0.0-RC.3.
Chamilo LMS is a learning management system. Prior to 2.0.0-RC.3, any authenticated user (including ROLE_STUDENT) can enumerate all platform users and access personal information (email, phone, roles) via GET /api/users, including administrator accounts. This vulnerability is fixed in 2.0.0-RC.3.
Chamilo LMS is a learning management system. Prior to 1.11.38 and 2.0.0-RC.3, REST API keys are generated using md5(time() + (user_id * 5) - rand(10000, 10000)). The rand(10000, 10000) call always returns exactly 10000 (min == max), making the formula effectively md5(timestamp + user_id*5 - 10000). An attacker who knows a username and approximate key creation time can brute-force the API key. This vulnerability is fixed in 1.11.38 and 2.0.0-RC.3.