PHP2Shell: Read our blog on the critical RCE vulnerabilities affecting 70% of the Internet
Vulnerability DatabaseCVE-2026-114389

CVE-2026-114389: 
Chamilo vulnerability analysis and mitigation

Overview

CVE-2026-114389 is a missing authorization vulnerability (IDOR) in Chamilo LMS affecting the AiController::openAnswerGrade endpoint. It allows any authenticated user to obtain AI grading of other students' exam attempts by enumerating exeId and questionId parameters. Affected versions span from 2.0.0-alpha.4 up to (but not including) 2.0.0-RC.3. The vulnerability was disclosed on October 21, 2026, with a patch available in v2.0.0-RC.3. It carries a CVSS v3.1 score of 4.3 (Medium) and a CVSS v4.0 score of 5.3 (Medium) (Github Advisory, Feedly).

Technical details

The root cause is classified as CWE-639 (Authorization Bypass Through User-Controlled Key): the openAnswerGrade action in AiController.php accepted user-supplied exeId, questionId, and courseId parameters without verifying that the requesting user had authorization to access the referenced exam attempt. In the vulnerable code (v2.0.0-RC.2), the endpoint processed these parameters and returned AI-generated scores and feedback without any role or ownership check, unlike other methods in the same controller that called denyIfNotTeacher(). An attacker with a valid session could send POST requests to /api/ai/open_answer_grade with arbitrary integer values for exeId and questionId to retrieve another student's exam answer and AI feedback. The fix in commit 2861afd added $this->denyAccessUnlessGranted(CourseVoter::EDIT, $course) before processing, restricting access to teachers and administrators (Chamilo Issue #7671, Patch Commit).

Impact

Successful exploitation allows any authenticated student to read the exam answers and AI-generated feedback of other students by iterating over exercise attempt IDs, constituting a confidentiality breach of student academic data. Additionally, attackers can deplete the platform's AI grading quota by triggering AI evaluations for arbitrary exam attempts without authorization, potentially causing a resource exhaustion impact on the AI service. There is no integrity or availability impact on the core system itself, and lateral movement beyond the LMS is not directly enabled by this vulnerability (Github Advisory, Feedly).

Exploitability

There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation at the time of disclosure. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is 0.0, reflecting a very low probability of exploitation in the near term. Exploitation requires a valid authenticated session (low-privilege user), making it accessible to any enrolled student but not to unauthenticated users (Github Advisory, Feedly).

Exploitation steps

  1. Authenticate: Log in to the Chamilo LMS instance as any valid student account to obtain a session cookie.
  2. Identify the endpoint: Target the AI grading endpoint at POST /api/ai/open_answer_grade (route name: chamilo_core_ai_open_answer_grade).
  3. Enumerate exam attempt IDs: Send POST requests with incrementing integer values for exeId (exercise attempt ID) and questionId, along with a valid courseId. Example payload: exeId=1001&questionId=5&courseId=3.
  4. Extract student answers: For each valid combination, the server returns a JSON response containing an AI-generated score and feedback field that reflects the content of the targeted student's open-answer response.
  5. Deplete AI quota: Repeat requests at scale to consume the platform's AI provider quota, potentially disrupting AI grading functionality for legitimate users (Chamilo Issue #7671, Vulnerable Code).

Indicators of compromise

  • Network: Repeated POST requests to /api/ai/open_answer_grade from a single authenticated user session with sequentially or randomly varying exeId and questionId values in a short time window.
  • Logs: Application or web server access logs showing high-frequency requests to the chamilo_core_ai_open_answer_grade route from a single user account, especially with varied parameter values not matching the user's own exam attempts.
  • Application Behavior: Unusual spikes in AI provider API usage or quota consumption not correlated with teacher/admin activity, potentially visible in AI provider billing dashboards or audit logs.
  • Database: TrackEDefault records with default_event_type = 'ai_use_question_feedback' and default_user_id values belonging to student-role accounts (rather than teachers), particularly for attempt_id values not owned by that user (Chamilo Issue #7671).

Mitigation and workarounds

Upgrade Chamilo LMS to version 2.0.0-RC.3 or later, which includes the fix in commit 2861afd that adds CourseVoter::EDIT authorization checks to the openAnswerGrade endpoint, restricting access to teachers and administrators only. No official configuration-based workaround is available for versions prior to RC.3; however, administrators can temporarily restrict access to the /api/ai/open_answer_grade route at the web server or firewall level if an immediate upgrade is not feasible. Monitoring AI quota usage for anomalous patterns is also recommended as a detective control (Chamilo Release v2.0.0-RC.3, Patch Commit).

Community reactions

The vulnerability was originally reported by security researcher lighthousekeeper1212 via a GitHub issue in March 2026 as part of a broader review identifying approximately 13 authorization vulnerabilities in Chamilo LMS 2.x stemming from a systemic lack of default-deny access controls. Chamilo maintainer ywarnier acknowledged the findings, noted that the project was already aware of similar issues detected via Claude Code, and addressed the reported vulnerabilities in commit 2861afd before the RC.3 release. The maintainer also requested that future security issues be reported through the private GitHub Security Advisory process rather than public issues (Chamilo Issue #7671).

Additional resources


Source: This report was generated using AI

Related Chamilo vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-45140CRITICAL9.8
  • PHP logoPHP
  • cpe:2.3:a:chamilo:chamilo_lms
NoYesSep 17, 2026
CVE-2026-45143CRITICAL9
  • Chamilo logoChamilo
  • cpe:2.3:a:chamilo:chamilo_lms
NoYesSep 17, 2026
CVE-2026-114390NONEN/A
  • Chamilo logoChamilo
  • cpe:2.3:a:chamilo:chamilo_lms
NoNoOct 21, 2026
CVE-2026-114389NONEN/A
  • Chamilo logoChamilo
  • cpe:2.3:a:chamilo:chamilo_lms
NoNoOct 21, 2026
CVE-2026-114388NONEN/A
  • Chamilo logoChamilo
  • cpe:2.3:a:chamilo:chamilo_lms
NoNoOct 21, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management