CVE-2025-52482

8.3 HIGH

📋 TL;DR

A stored cross-site scripting (XSS) vulnerability in Chamilo LMS allows teachers to inject malicious JavaScript into the glossary function, which executes when administrators view the content. This enables teachers to perform actions as administrators, potentially compromising the entire learning management system. All Chamilo installations prior to version 1.11.30 with teacher users are affected.

💻 Affected Systems

Products:
  • Chamilo LMS
Versions: All versions prior to 1.11.30
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires teacher role access to glossary function; administrators must view the malicious content.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Teacher gains full administrative control, leading to data theft, system compromise, or complete platform takeover.

🟠

Likely Case

Teacher steals administrator session cookies, performs unauthorized actions, or defaces the platform.

🟢

If Mitigated

Limited to teacher-accessible functions with proper input validation and output encoding in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires teacher credentials and knowledge of XSS payloads; trivial for attackers with basic web skills.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.11.30

Vendor Advisory: https://github.com/chamilo/chamilo-lms/security/advisories/GHSA-4wcp-3rh3-7wm4

Restart Required: No

Instructions:

1. Backup your Chamilo installation and database. 2. Download version 1.11.30 from the official repository. 3. Replace affected files with patched versions. 4. Clear application cache if applicable.

🔧 Temporary Workarounds

Disable Glossary Function

all

Temporarily disable the glossary feature to prevent exploitation.

# Modify Chamilo configuration to remove glossary access

Implement WAF Rules

linux

Add web application firewall rules to block XSS payloads in glossary inputs.

# Example ModSecurity rule: SecRule ARGS "<script" "id:1001,phase:2,deny"

🧯 If You Can't Patch

  • Restrict teacher access to glossary function through role-based permissions.
  • Implement content security policy (CSP) headers to mitigate script execution.

🔍 How to Verify

Check if Vulnerable:

Check if Chamilo version is below 1.11.30 and verify teacher role has glossary access.

Check Version:

Check Chamilo admin panel or database version table.

Verify Fix Applied:

Confirm installation is version 1.11.30 or higher and test glossary input sanitization.

📡 Detection & Monitoring

Log Indicators:

  • Unusual glossary entries with script tags
  • Multiple glossary modifications by teacher accounts

Network Indicators:

  • HTTP requests containing script payloads to glossary endpoints

SIEM Query:

source="chamilo_logs" AND (glossary AND (script OR javascript OR alert))

🔗 References

📤 Share & Export