
Segundo CVE sigue siendo Ejecución Remota de Código
CVE-2026-35196 · Chamilo LMS · Inyección de Comandos del SO → RCE
Investigador: K
Tipo de Divulgación: Divulgación Responsable
Estado: Parcheado
Producto Afectado: Chamilo LMS< 2.0(Confirmado env1.11.32)
Existe una vulnerabilidad crítica de Inyección de Comandos del SO en la acción export_all_certificates de main/inc/ajax/gradebook.ajax.php dentro de Chamilo LMS v1.11.32.
La aplicación obtiene un código de curso mediante api_get_course_id(), que lee directamente de $_SESSION['_cid']. Este valor derivado de la sesión se concatena sin sanitizar en una llamada a shell_exec() — sin escapeshellarg(), sin validación de lista blanca, sin aplicación de tipo.
Un atacante que pueda manipular o envenenar la variable _cid de su sesión (a través de envenenamiento de sesión, encadenamiento de IDOR u otras primitivas de manipulación de sesión) puede inyectar metacaracteres de shell arbitrarios y lograr ejecución remota de código completa como el usuario del servidor web (www-data).
Archivo Vulnerable: main/inc/ajax/gradebook.ajax.php
Función Vulnerable: export_all_certificates
Cuando un usuario activa la acción export_all_certificates, el script intenta ejecutar un proceso en segundo plano para procesar certificados:
$courseCode = api_get_course_id(); // Retrieves the value from $_SESSION['_cid']
$sessionId = api_get_session_id();
// ...
$commandScript = api_get_path(SYS_CODE_PATH).'gradebook/cli/export_all_certificates.php';
$userList = implode(',', $userList);
// Flaw: Variables like $courseCode are passed directly to the shell without escapeshellarg()
shell_exec("php $commandScript $courseCode $sessionId $categoryId $userList > /dev/null &");
Debido a que la aplicación confía implícitamente en el contenido de las variables de sesión y falla al escaparlas adecuadamente antes de enviarlas al shell del sistema, un atacante con una sesión manipulada puede añadir y ejecutar comandos maliciosos. Por ejemplo, si _cid contiene "; touch /tmp/remote_code_by_k; #", el comando interpretado por el shell bash/sh se convierte en:
php /var/www/chamilo/main/gradebook/cli/export_all_certificates.php ; touch /tmp/remote_code_by_k; # ... > /dev/null &
El shell ejecuta el script CLI, seguido del payload inyectado, e ignora el resto de la cadena de comando prevista.
$_SESSION['_cid']. Esto puede lograrse encadenando esta falla con una vulnerabilidad de envenenamiento de sesión o manipulando el valor del código de curso a través de un IDOR o manejo inseguro de parámetros en otra parte de la aplicación para actualizar su contexto de sesión._cid a: "; [COMANDO_MALICIOSO]; #"GET a: /main/inc/ajax/gradebook.ajax.php?a=export_all_certificates&cat_id=1 con la cookie de sesión envenenada.www-data).escapeshellarg(): Envolver todas las variables derivadas del usuario (como $courseCode, $sessionId y $userList) con escapeshellarg() de PHP antes de pasarlas a shell_exec() para neutralizar metacaracteres arbitrarios del SO.$_SESSION['_cid']) estén tipificadas rígidamente y sanitizadas para que posibles ataques de "Envenenamiento de Sesión" o encadenamiento de IDOR sean bloqueados en el punto de entrada.www-data) con permisos de escritura restrictivos en el sistema de archivos y limitar el acceso de la aplicación a binarios esenciales del shell de Linux para mitigar capacidades posteriores a la explotación.Handle : K
GitHub : https://github.com/kx00007
Enfoque : Vulnerabilidad RCE del lado del servidor, Caza de CVE, Investigación de Vulnerabilidades, Desarrollo de Exploits
Anterior: CVE-2026-29041 (Chamilo LMS — RCE Autenticado mediante Carga de Archivos)
⚡Intenta Más Duro.
| Campo | Detalles |
|---|
| Producto | Chamilo LMS |
| Versión Afectada | < 2.0 (Confirmado en v1.11.32) |
| Vulnerabilidad | Inyección de Comandos del SO |
| CWE | CWE-78 — Neutralización Incorrecta de Elementos Especiales usados en un Comando del SO |
| Puntuación CVSSv3.1 | 8.8 (ALTA) |
| Vector | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Autenticación Requerida | Sí (cualquier usuario autenticado con una sesión envenenada) |
| Tipo de Exploit | Ejecución Remota de Código Autenticada |
| Archivo Vulnerable | main/inc/ajax/gradebook.ajax.php |
| Dimensión | Impacto |
|---|
| Confidencialidad | Acceso completo de lectura — código fuente, configuraciones, credenciales de BD, /etc/passwd |
| Integridad | Escritura arbitraria de archivos, despliegue de webshell, manipulación de base de datos |
| Disponibilidad | Interrupción del servicio, destrucción del sistema de archivos, despliegue de ransomware |
| Alcance | Proceso del servidor web (www-data); potencial de movimiento lateral a través de exposición de credenciales |
| Componente | Detalles |
|---|
| SO | Ubuntu Server (Docker) |
| Servidor Web | Apache / Nginx |
| PHP | 7.x / 8.x |
| App | Chamilo LMS v1.11.32-v2.0 |
| Shell | /bin/sh → bash |