
PoC que demuestra la escalada de privilegios por asignación masiva CVE-2025-2304 en Camaleon CMS mediante la inyección de un atributo de rol en el parámetro de contraseña durante las actualizaciones de perfil de usuario.
Este repositorio contiene una Prueba de Concepto (PoC) funcional para una vulnerabilidad de Asignación Masiva en Camaleon CMS (versiones anteriores a la 2.8.1). La vulnerabilidad reside en el endpoint updated_ajax del módulo de Gestión de Usuarios, donde la aplicación no filtra estrictamente los atributos sensibles dentro del hash del parámetro password.
Al inyectar un atributo role en el ámbito de password durante una actualización de perfil, un usuario con pocos privilegios puede sobrescribir sus propios permisos para obtener el estado admin.
La vulnerabilidad tiene su origen en una mala configuración de Strong Parameters en el controlador de Ruby on Rails. Cuando la aplicación procesa la solicitud de actualización AJAX, permite incorrectamente que la clave role se fusione con los atributos del objeto usuario:
/admin/users/:id/updated_ajaxpassword[...]password[role]=adminrequests.Session para mantener el estado entre las fases de autenticación y explotación.authenticity_token del DOM y lo sincroniza con el encabezado X-CSRF-Token, cumpliendo con los requisitos de seguridad AJAX de Rails./admin/profile/edit para resolver dinámicamente el user[id] requerido para el endpoint RESTful._method=patch para satisfacer los requisitos de enrutamiento de la aplicación para las actualizaciones de recursos mediante POST.requestsbeautifulsoup4Instalar dependencias:
pip install -r requirements.txt
python3 main.py -u <target_url> --user <username> --password <password>
/admin/login): Establece una sesión autenticada usando user[username]./admin/profile/edit): Extrae el user[id] único y un nuevo authenticity_token./admin/users/:id/updated_ajax): Envía el payload de inyección.El exploit utiliza un payload de tipo application/x-www-form-urlencoded estructurado de la siguiente manera:
Esta herramienta es únicamente para fines educativos y pruebas de penetración autorizadas. El acceso no autorizado a sistemas en producción es ilegal.
| Parámetro | Valor | Descripción |
|---|
_method | patch | Sobrescritura del método REST de Rails |
authenticity_token | [Captured] | Protección CSRF sincronizada |
password[password] | [NewPassword] | Requerido para la validación del ámbito de contraseña |
password[role] | admin | Inyección maliciosa |