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-2026-39275 — CVE-2026-39275 - XSS almacenado que conduce a la toma de cuentas en Cockpit CMS | Kitploit
Herramientas/GitHubGitHub/securify-ai/cve-2026-39275
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónAprendizaje y Educación
GitHubsecurify-ai/cve-2026-39275

CVE-2026-39275

CVE-2026-39275 - XSS almacenado que conduce a la toma de cuentas en Cockpit CMS

Ver Repositorio
11hace 2 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

CVE-2026-39275 - XSS Almacenado que Lleva a la Toma de Control de Cuenta en Cockpit CMS

CVE CWE-79 Severity CVSS

Nota: Divulgado responsablemente y corregido por los mantenedores de Cockpit CMS antes de la publicación.

ID CVECVE-2026-39275
VulnerabilidadCross-Site Scripting Almacenado (XSS) → Toma de Control de Cuenta
CWECWE-79
AfectadoCockpit CMS <= 2.13.5
Corregidod70dc50
CVSS 3.18.4 (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N)
Reportado porRohith - Consultor de Seguridad @ SecurifyAI

Resumen

Una vulnerabilidad de XSS almacenado en la vista de lista de colecciones de contenido permite a cualquier usuario con acceso de escritura de contenido (una clave API o una sesión de editor autenticado) inyectar JavaScript arbitrario que se ejecuta en el navegador de cualquier administrador o editor que vea la lista de elementos de la colección afectada.

Los tokens de sesión de Cockpit son completamente accesibles desde JavaScript: la cookie de sesión se establece sin la bandera HttpOnly, y el JWT CSRF está expuesto en la variable global App.csrf y en el atributo data-csrf en <html>. Esto permite que el script inyectado lea ambos tokens y los reproduzca externamente, anulando la protección CSRF y permitiendo el secuestro completo de sesión y la toma de control de cuenta.


Causa Raíz

Las salidas del método render() de los campos se pasan a la directiva v-html de Vue sin codificación de salida.

ArchivoLínea(s)Rol
modules/App/assets/vue-components/fields/field-tags.js25 - 34Renderizador de etiquetas - sin codificación
modules/App/assets/vue-components/fields/field-select.js26Renderizador de selección - sin codificación
modules/Content/views/collection/items.php149sumidero v-html

Prueba de Concepto

1. Inyectar el payload (clave API de escritura con pocos privilegios)

root@kitploit:~
curl -X POST "http://localhost:8080/api/content/item/posts" \
  -H "Content-Type: application/json" \
  -H "api-key: USR-<attacker-api-key>" \
  -d '{
    "data": {
      "title": "Innocent Looking Post",
      "tags": [
        "",
        ""
      ],
      "body": "Just a regular post.",
      "_state": 1
    }
  }'

2. Desencadenar la ejecución

Un administrador o editor navega a /content/collection/items/posts. El renderizador de etiquetas devuelve la cadena almacenada, v-html la analiza en un elemento `` real, el src falso falla y el manejador onerror se activa.

3. Robo de tokens

Ambos tokens ahora son legibles: la cookie de sesión a través de document.cookie y el JWT CSRF a través de App.csrf / document.documentElement.getAttribute('data-csrf'). Un payload armado exfiltra ambos:

root@kitploit:~
imagen

4. Rejuego de sesión

El atacante rejuega la cookie robada y el token CSRF, obteniendo acceso completo de administrador autenticado, y luego puede crear cuentas de administrador, cambiar credenciales o modificar contenido.


Impacto

Un editor con pocos privilegios (o cualquier titular de clave API de escritura de contenido) escala a administrador completo. El payload se almacena y se activa para cada administrador/editor que vea la lista, convirtiéndolo en un compromiso persistente y multi-víctima.


Corrección

Corrección principal: sanitizar la salida del render antes de que llegue a v-html utilizando el helper existente App.utils.stripTags().

field-tags.js:

root@kitploit:~
value = App.utils.stripTags(value); // sanitize before v-html

field-select.js:

root@kitploit:~
return App.utils.stripTags(value); // sanitize before v-html

Defensa en profundidad: endurecer la cookie de sesión:

root@kitploit:~
ini_set('session.cookie_httponly', 1);
ini_set('session.cookie_secure', 1);   // over HTTPS
ini_set('session.cookie_samesite', 'Strict');

HttpOnly por sí solo es insuficiente: el XSS aún puede actuar dentro del contexto autenticado del navegador de la víctima, por lo que la codificación de salida es la corrección esencial.


Cronología de Divulgación

FechaEvento
2026-03-29Vulnerabilidad reportada a los mantenedores de Cockpit CMS
2026-03-29Corrección publicada por los mantenedores
2026-04-04CVE solicitado
2026-06-23CVE-2026-39275 asignado
<pub date>Divulgación pública

Este material se publica con fines educativos y defensivos siguiendo una divulgación coordinada. Úselo solo contra sistemas que posea o que tenga autorización explícita para probar.

Descargar herramienta