Skip to main content

Chamilo LMS CVE-2026-45143

| EUVDEUVD-2026-82419 CRITICAL
Cross-site Scripting (XSS) (CWE-79)
2026-09-17 GitHub_M
9.0
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privilege student
  2. Delivery
    Compose message to administrator with script payload
  3. Exploit
    Server stores content unsanitized
  4. Execution
    Admin opens inbox/message view
  5. Persist
    Payload runs in admin browser context
  6. Impact
    Steal session or perform admin actions

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated Chamilo LMS account of any privilege level, including a student (PR:L), and relies on the built-in private messaging feature that lets a sender choose an arbitrary recipient - enabling a low-privilege user to directly target an administrator. Exploitation succeeds only against affected versions 2.0.0 through at least 2.1.0 (fixed in 2.0.1) where Message.content is stored without server-side sanitization and rendered as raw HTML in MessageShow.vue and view_message.html.twig. The limiting factor is user interaction (UI:R): the payload fires only when the recipient opens their inbox or the message view - though no link click is needed, so normal inbox usage triggers it. There is no unauthenticated path; an account and the messaging feature being enabled are prerequisites.

Impact

This is a stored (persistent) cross-site scripting flaw (CWE-79) whose severity signals are strong but whose real-world urgency is moderate. The vendor CVSS:3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H = 9.0) is well-supported by the source evidence: the fixed Twig template previously wrapped output in {% autoescape false %} and rendered {{ message.content }} (later shown in the diff as {{ message.content|raw }}) with no sanitization, and the patch adds a MessageNormalizer that runs Security::remove_XSS() on the content - confirming unsanitized HTML storage and rendering. The attack is genuinely dangerous because a low-privilege student can pick an administrator as the recipient, so the payload executes in a high-value session with no link click (UI:R is satisfied merely by the admin opening the routine inbox). Tempering the score: exploitation is not zero-interaction (the victim must open the message), requires an authenticated account (PR:L), and no EPSS score, CISA KEV entry, SSVC decision, or public POC is provided in the input - so there is no signal of active or automated exploitation. A:H in the vendor vector is somewhat aggressive for an XSS; impact is really confidentiality/integrity (session theft, admin actions) rather than direct availability loss. Net: a real and patchable priority for any Chamilo 2.x operator, but currently 'no public exploit identified,' so this is a proactive-patch situation rather than an emergency-response one.

Exploit ScenarioDerived

A logged-in student composes a private message addressed to an administrator with a payload such as an image/script tag in the body; Chamilo stores it without sanitization. When the administrator opens their inbox or the message view, the script executes in the admin's authenticated browser context, allowing session/cookie theft or forged administrative actions. No public exploit code is identified in the provided data, but the exploit is trivial to construct given the confirmed unsanitized |raw render.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 17, 2026

Stored cross-site scripting in Chamilo LMS 2.x allows any authenticated user - including a low-privilege student - to inject persistent JavaScript into an administrator's browser by sending a private message through the platform's built-in messaging feature, which permits the sender to select an arbitrary recipient. The payload executes automatically when the administrator opens their routine inbox or message view, with no link click required, enabling session credential theft and actions performed with the administrator's privileges. Affected versions are 2.0.0 through at least 2.1.0 (EUVD narrows the fixed boundary to releases below 2.0.1), and a vendor patch is available in 2.0.1; no public exploit code was identified at time of analysis and there is no CISA KEV listing, but the very low attacker bar - an ordinary student account - makes timely patching important.

RemediationAI

Vendor-released patch: upgrade Chamilo LMS to 2.0.1 (release https://github.com/chamilo/chamilo-lms/releases/tag/v2.0.1, fix commit b2c91c021fc5ab7e91feb4927c4c676f77034ac5), which adds src/CoreBundle/Serializer/Normalizer/MessageNormalizer.php to sanitize Message.content with Security::remove_XSS(content, STUDENT) and removes the blanket {%% autoescape false %%} wrapper in the message view template - because the advisory text and EUVD disagree on the upper bound of the vulnerable range, verify the installed tag rather than assuming a 2.1.x build is safe. If upgrading immediately is not possible, the highest-value compensating control is to remove the delivery path: disable the private messaging module or restrict recipients so low-privilege accounts (students) cannot address messages to administrators, accepting the loss of legitimate internal communication. A second option is to manually backport the template change - delete {%% autoescape false %%} and force escaping of message.content rather than emitting it raw - but this will visibly break intentional HTML formatting in existing messages. Deploying the upstream MessageNormalizer alone also reduces risk, though STUDENT-level filtering still allows a limited HTML subset, leaving residual markup-based exposure. A restrictive Content-Security-Policy can blunt script execution as defense in depth but commonly breaks rich LMS content and must be tested. Advising administrators not to read messages from unknown senders is not a reliable mitigation, since the payload fires on ordinary inbox load without any link click. No public exploit code was identified at time of analysis and the issue is not in CISA KEV, but the trivial prerequisite of an ordinary student account justifies prompt patching.

Affected VersionsENISA

chamilo-lms 2.0.0, < 2.0.1

Affected Packages

euvd chamilo_lms_2_0_0 fix: 2.0.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Chamilo LMS is a PHP/Symfony learning management system whose private messaging is served by both a Twig template (public/main/template/default/message/view_message.html.twig) and a Vue.js component (assets/vue/views/message/MessageShow.vue). The flaw is CWE-79 (improper neutralization of input during web page generation, i.e. stored/persistent XSS): the Message.content field was persisted without server-side sanitization, and the Twig template wrapped the entire message body in a {%% autoescape false %%} block, which disabled context-aware output escaping for the injected content, while the Vue view rendered the same value as raw HTML. Because the message creation flow lets the sender choose any user as recipient, a student can address attacker-controlled markup directly to an administrator, and the script runs in the administrator's authenticated session when the message is merely viewed. The upstream fix removes the blanket autoescape-disabling block, keeps explicit |raw only on the intended content field, and introduces src/CoreBundle/Serializer/Normalizer/MessageNormalizer.php, a Symfony serializer normalizer that passes Message.content through Security::remove_XSS(content, STUDENT) before it is returned to the client. Note that STUDENT-level filtering permits a restricted HTML subset rather than stripping all markup, so the fix reduces but does not eliminate markup-based abuse. The assessed vector CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:L reflects network delivery, low complexity, a required low-privilege account, and user interaction limited to opening the inbox, with scope change (S:C) because script executes in the higher-privileged administrator's browser context; the NVD-style score of 9.0 differs only by rating availability impact as High rather than Low.

Know when Chamilo Lms gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 9.0 CRITICAL
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
vuln.today AI 8.9 HIGH

Authenticated low-priv sender (PR:L) over the network, victim must open the message (UI:R); script runs in another user's context so S:C, enabling session theft (C:H) and admin actions (I:H); availability impact is secondary (A:L) not full.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:L/SC:H/SI:H/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Sep 17, 2026 - 21:19 EUVD
CVE Published
Sep 17, 2026 - 20:09 cve.org
CRITICAL 9.0

DescriptionCVE.org

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.

Technical POC Analysis

This is stored cross-site scripting, CWE-79.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A critical stored cross-site scripting flaw in Chamilo LMS versions 2.0.0 through at least 2.1.0 lets any ordinary account holder-including a student-silently plant persistent code in an administrator's inbox, which then runs automatically when that administrator opens their messages. Successful exploitation effectively hands an outside user the administrator's session and the ability to act with full platform privileges, putting student records, course content, and institutional data at risk. No public exploit code or active exploitation has been observed, but the exceptionally low skill and access bar makes this a priority remediation item for any institution running the affected releases.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Medium
Popular open-source LMS in education, but 2.x is a newer major branch
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

45
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +45
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2025-50187 CRITICAL POC
9.8 Mar 02

Chamilo LMS prior to 1.11.28 has a code injection through SOAP request parameters enabling remote code execution.

CVE-2025-50192 CRITICAL POC
9.8 Mar 02

Chamilo LMS prior to 1.11.30 has a time-based SQL injection in a different endpoint, providing an additional database ex

CVE-2025-50190 CRITICAL POC
9.8 Mar 02

Chamilo LMS prior to 1.11.30 has an error-based SQL injection enabling database extraction.

CVE-2021-35414 CRITICAL POC
9.8 Dec 03

Chamilo LMS v1.11.x was discovered to contain a SQL injection via the doc parameter in main/plagiarism/compilatio/upload

CVE-2019-13082 CRITICAL POC
9.8 Jun 30

Chamilo LMS 1.11.8 and 2.x allows remote code execution through an lp_upload.php unauthenticated file upload feature. Ra

CVE-2025-50199 CRITICAL POC
9.1 Mar 02

Chamilo LMS prior to 1.11.30 has a blind SSRF vulnerability enabling internal network reconnaissance from the learning p

CVE-2023-4220 MEDIUM POC
6.1 Nov 28

Unrestricted file upload in big file upload functionality in `/main/inc/lib/javascript/bigupload/inc/bigUpload.php` in C

CVE-2025-50189 HIGH POC
8.8 Mar 02

Chamilo is a learning management system. [CVSS 8.8 HIGH]

CVE-2025-52468 HIGH POC
8.8 Mar 02

Chamilo is a learning management system. Prior to version 1.11.30, an input validation vulnerability exists when importi

CVE-2024-30616 HIGH POC
8.8 Nov 04

Chamilo LMS 1.11.26 is vulnerable to Incorrect Access Control via main/auth/profile. Rated high severity (CVSS 8.8), thi

CVE-2023-4226 HIGH POC
8.8 Nov 28

Unrestricted file upload in `/main/inc/ajax/work.ajax.php` in Chamilo LMS <= v1.11.24 allows authenticated attackers wit

CVE-2023-4225 HIGH POC
8.8 Nov 28

Unrestricted file upload in `/main/inc/ajax/exercise.ajax.php` in Chamilo LMS <= v1.11.24 allows authenticated attackers

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy