CVE-2025-50187

9.8 CRITICAL

📋 TL;DR

This vulnerability allows remote code execution in Chamilo LMS by exploiting unfiltered parameter evaluation in SOAP requests. Attackers can execute arbitrary code on affected systems, potentially compromising the entire server. All Chamilo installations prior to version 1.11.28 are vulnerable.

💻 Affected Systems

Products:
  • Chamilo LMS
Versions: All versions prior to 1.11.28
Operating Systems: All platforms running Chamilo
Default Config Vulnerable: ⚠️ Yes
Notes: Requires SOAP functionality to be enabled, which is common in default configurations.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server compromise allowing attackers to execute arbitrary commands, steal sensitive data, install malware, pivot to internal networks, and maintain persistent access.

🟠

Likely Case

Attackers gain shell access to the web server, potentially accessing database credentials, user data, and modifying/deleting learning content.

🟢

If Mitigated

With proper network segmentation and least privilege, impact limited to the web application layer with no lateral movement.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

SOAP endpoint exploitation typically requires minimal technical skill once details are public.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.11.28

Vendor Advisory: https://github.com/chamilo/chamilo-lms/security/advisories/GHSA-356v-7xg2-3678

Restart Required: Yes

Instructions:

1. Backup your Chamilo installation and database. 2. Download version 1.11.28 from the official repository. 3. Replace all files with the new version. 4. Run the database update script if required. 5. Restart your web server.

🔧 Temporary Workarounds

Disable SOAP functionality

all

Temporarily disable SOAP endpoints if not required for functionality

# In Apache: RewriteRule ^/soap.*$ - [F]
# In Nginx: location ~ ^/soap { deny all; }

Web Application Firewall rule

all

Block suspicious SOAP requests containing code execution patterns

# ModSecurity rule: SecRule ARGS "@rx (system|exec|shell_exec|passthru|eval)" "id:1001,phase:2,deny"

🧯 If You Can't Patch

  • Implement strict network access controls to limit SOAP endpoint access to trusted IPs only
  • Deploy a web application firewall with specific rules to block malicious SOAP payloads

🔍 How to Verify

Check if Vulnerable:

Check Chamilo version in admin panel or by examining the main/inc/conf/configuration.php file for version information

Check Version:

grep -r "chamilo_version" main/inc/conf/configuration.php

Verify Fix Applied:

Confirm version is 1.11.28 or later and test SOAP functionality with safe test requests

📡 Detection & Monitoring

Log Indicators:

  • Unusual SOAP requests with PHP function names
  • Web server errors containing eval() or system() calls
  • Multiple failed SOAP authentication attempts

Network Indicators:

  • POST requests to /soap/ endpoints with suspicious parameters
  • Outbound connections from web server to unexpected destinations

SIEM Query:

source="web_server" AND (uri_path="/soap/*" AND (param="system" OR param="exec" OR param="eval"))

🔗 References

📤 Share & Export