
Second CVE still Remote Code Execution
CVE-2026-35196 · Chamilo LMS · OS-Befehlseinschleusung → RCE
Forscher: K
Offenlegungsart: Verantwortungsvolle Offenlegung
Status: Gepatched Betroffenes Produkt: Chamilo LMS< 2.0(Bestätigt aufv1.11.32)
Eine kritische Schwachstelle der OS-Befehlseinschleusung existiert in der Aktion export_all_certificates der Datei main/inc/ajax/gradebook.ajax.php in Chamilo LMS v1.11.32.
Die Anwendung ruft einen Kurscode über api_get_course_id() ab, der direkt aus $_SESSION['_cid'] gelesen wird. Dieser aus der Sitzung stammende Wert wird unbereinigt in einen shell_exec()-Aufruf konkateniert – kein escapeshellarg(), keine Whitelist-Validierung, keine Typüberprüfung.
Ein Angreifer, der die _cid-Variable seiner Sitzung manipulieren oder vergiften kann (durch Sitzungsvergiftung, IDOR-Verkettung oder andere Sitzungsmanipulationsprimitive), kann beliebige Shell-Metazeichen injizieren und eine vollständige Remote-Codeausführung als Webserver-Benutzer (www-data) erreichen.
Anfällige Datei: main/inc/ajax/gradebook.ajax.php
Anfällige Funktion: export_all_certificates
Wenn ein Benutzer die Aktion export_all_certificates auslöst, versucht das Skript, einen Hintergrundprozess zur Verarbeitung von Zertifikaten auszuführen:
$courseCode = api_get_course_id(); // Ruft den Wert aus $_SESSION['_cid'] ab
$sessionId = api_get_session_id();
// ...
$commandScript = api_get_path(SYS_CODE_PATH).'gradebook/cli/export_all_certificates.php';
$userList = implode(',', $userList);
// Fehler: Variablen wie $courseCode werden ohne escapeshellarg() direkt an die Shell übergeben
shell_exec("php $commandScript $courseCode $sessionId $categoryId $userList > /dev/null &");
Da die Anwendung implizit den Inhalten der Sitzungsvariablen vertraut und es versäumt, diese ordnungsgemäß zu escapen, bevor sie an die System-Shell gesendet werden, kann ein Angreifer mit einer manipulierten Sitzung bösartige Befehle anhängen und ausführen. Wenn _cid beispielsweise "; touch /tmp/remote_code_by_k; #" enthält, wird der von der bash/sh-Shell interpretierte Befehl zu:
php /var/www/chamilo/main/gradebook/cli/export_all_certificates.php ; touch /tmp/remote_code_by_k; # ... > /dev/null &
Die Shell führt das CLI-Skript aus, gefolgt von der injizierten Nutzlast, und ignoriert den Rest der beabsichtigten Befehlszeichenfolge.
$_SESSION['_cid']-Variable beeinflussen. Dies kann erreicht werden, indem diese Schwachstelle mit einer Sitzungsvergiftungsschwachstelle verkettet wird oder indem der Kurscode-Wert durch eine IDOR oder unsichere Parameterbehandlung an anderer Stelle in der Anwendung manipuliert wird, um den Sitzungskontext zu aktualisieren._cid-Sitzungsvariable auf: "; [BÖSARTIGER_BEFEHL]; #"GET-Anfrage an: /main/inc/ajax/gradebook.ajax.php?a=export_all_certificates&cat_id=1 mit dem vergifteten Sitzungscookie.www-data) aus.escapeshellarg() anwenden: Umhüllen Sie alle benutzerabgeleiteten Variablen (wie $courseCode, $sessionId und $userList) mit PHP's escapeshellarg(), bevor Sie sie an shell_exec() übergeben, um beliebige OS-Metazeichen zu neutralisieren.$_SESSION['_cid']) streng typisiert und bereinigt sind, sodass potenzielle "Sitzungsvergiftungs"- oder IDOR-Verkettungsangriffe am Eintrittspunkt blockiert werden.www-data) mit restriktiven Dateisystem-Schreibberechtigungen und beschränken Sie den Zugriff der Anwendung auf wesentliche Linux-Shell-Binärdateien, um Post-Exploitation-Fähigkeiten zu mildern.Handle : K
GitHub : https://github.com/kx00007
Focus : Serverseitige Schwachstelle RCE, CVE-Jagd, Sicherheitsforschung, Exploit-Entwicklung
Prior : CVE-2026-29041 (Chamilo LMS — Authentifizierte RCE über Dateiupload)
⚡Versuche es härter.
| Feld | Details |
|---|
| Produkt | Chamilo LMS |
| Betroffene Version | < 2.0 (Bestätigt auf v1.11.32) |
| Schwachstelle | OS-Befehlseinschleusung |
| CWE | CWE-78 — Unzureichende Neutralisierung spezieller Elemente in einem OS-Befehl |
| CVSSv3.1-Punktzahl | 8.8 (HOCH) |
| Vektor | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Authentifizierung erforderlich | Ja (jeder authentifizierte Benutzer mit einer vergifteten Sitzung) |
| Exploit-Typ | Authentifizierte Remote-Codeausführung |
| Anfällige Datei | main/inc/ajax/gradebook.ajax.php |
| Dimension | Auswirkung |
|---|
| Vertraulichkeit | Vollständiger Lesezugriff – Quellcode, Konfigurationen, DB-Anmeldedaten, /etc/passwd |
| Integrität | Beliebige Dateischreibvorgänge, Webshell-Bereitstellung, Datenbankmanipulation |
| Verfügbarkeit | Dienstunterbrechung, Dateisystemzerstörung, Ransomware-Bereitstellung |
| Umfang | Webserver-Prozess (www-data); laterale Bewegungspotenziale durch Offenlegung von Anmeldedaten |
| Komponente | Details |
|---|
| Betriebssystem | Ubuntu Server (Docker) |
| Webserver | Apache / Nginx |
| PHP | 7.x / 8.x |
| App | Chamilo LMS v1.11.32-v2.0 |
| Shell | /bin/sh → bash |