Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-40987 — CVE-2026-40987 PoC | Kitploit
Herramientas/GitHubGitHub/daehyuh/cve-2026-40987
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónPapers e InvestigaciónAprendizaje y Educación
GitHubdaehyuh/cve-2026-40987

CVE-2026-40987

CVE-2026-40987 PoC

Ver Repositorio
4hace 3 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-40987: PoC de Path Traversal en la sincronización remota de archivos de Spring Integration

Este repositorio es un PoC mínimo para reproducir CVE-2026-40987, publicado en el aviso de seguridad oficial de Spring.

  • Aviso oficial: https://spring.io/security/cve-2026-40987/
  • Título oficial: Remote-file synchronizer in Spring Integration writes server-supplied filename under localDirectory without canonicalization
  • Gravedad: High
  • CVSS v3.1: AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:H/A:L
  • Fecha de publicación: 2026-06-10

Resumen de la vulnerabilidad

El sincronizador remoto de archivos de Spring Integration podía usar directamente el nombre de archivo proporcionado por el servidor remoto al crear la ruta de almacenamiento local. Si la validación de la ruta canónica no era suficiente, un servidor FTP/SFTP/SMB malicioso o comprometido podía devolver un nombre de archivo como ../escaped-by-ftp-list.txt para escribir archivos fuera del localDirectory configurado.

Según el aviso oficial, no se trata solo de un problema de FTP, sino que afecta a la familia de sincronizadores remotos de archivos FTP/SFTP/SMB de Spring Integration. Este PoC utiliza FtpInboundFileSynchronizer para reproducir la misma ruta de vulnerabilidad de la manera más pequeña y clara.

Alcance afectado

Productos afectados según el aviso oficial:

  • Spring Integration

Versiones afectadas:

  • 7.0.0 - 7.0.4
  • 6.5.0 - 6.5.8
  • 6.4.0 - 6.4.11
  • 6.3.0 - 6.3.14
  • 5.5.0 - 5.5.20
  • Versiones anteriores no compatibles también pueden verse afectadas

Versiones corregidas:

  • 7.0.5 o 7.0.4.1
  • 6.5.9 o 6.5.8.1
  • 6.4.12
  • 6.3.15
  • 5.5.21

Lo que demuestra este PoC

Las pruebas muestran dos rutas.

  1. SpringIntegrationRemoteFilePathTraversalTest

    • Reproduce directamente la ruta del sincronizador remoto de archivos común de Spring Integration.
    • Verifica si cuando el nombre de archivo remoto es ../escaped-by-spring-integration.txt, se crea una ruta de archivo fuera del directorio local configurado.
  2. SpringIntegrationFtpPathTraversalTest

    • Ejecuta un pequeño servidor FTP malicioso dentro de la prueba.
    • Coloca ../escaped-by-ftp-list.txt en la respuesta LIST del servidor FTP.
    • Verifica que el FtpInboundFileSynchronizer real de Spring Integration recibe este nombre de archivo, descarga incoming/../escaped-by-ftp-list.txt, y el archivo resultante se crea fuera del directorio downloads.

El flujo central del PoC es el siguiente:

configured localDirectory = <temp>/downloads
remote LIST filename      = ../escaped-by-ftp-list.txt
resulting local path      = <temp>/downloads/../escaped-by-ftp-list.txt
normalized location       = <temp>/escaped-by-ftp-list.txt

Es decir, se puede escribir archivos fuera del directorio de descarga previsto por la aplicación.

Cómo ejecutar

Windows:

.\mvnw.cmd test

macOS/Linux:

./mvnw test

Resultado esperado con versiones vulnerables:

Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS

El éxito de la prueba significa que "se ha reproducido el comportamiento vulnerable". Es decir, con dependencias vulnerables, la prueba pasa y demuestra la escritura fuera del directorio.

Versiones verificadas localmente

Se pueden verificar varias versiones vulnerables con los siguientes comandos:

.\mvnw.cmd "-Dspring-integration.version=6.4.10" test
.\mvnw.cmd "-Dspring-integration.version=6.5.8" test
.\mvnw.cmd "-Dspring-integration.version=7.0.4" test
.\mvnw.cmd "-Dspring-integration.version=7.1.0-RC1" test

El valor predeterminado de este repositorio es spring-integration.version=7.0.4.

Por qué es peligroso

Esta vulnerabilidad permite a un atacante escribir contenido controlado por el atacante en el sistema de archivos local de la aplicación cliente. El atacante no es un cliente HTTP típico, sino que debe poder manipular las respuestas de un servidor de archivos remoto en el que la aplicación confía y al que consulta periódicamente.

Por lo tanto, existen condiciones previas, pero si se cumplen, son posibles los siguientes impactos:

  • Creación o sobrescritura de archivos dentro del directorio de trabajo de la aplicación
  • Colocación de archivos controlados por el atacante en el directorio de entrada por lotes, la raíz web, el directorio temporal, etc.
  • Impacto mayor en la integridad si se combina con canalizaciones de procesamiento posteriores

El aviso oficial evaluó este problema como High.

Créditos

El aviso oficial de Spring indica que los siguientes investigadores lo reportaron de manera responsable:

  • M0untainShley
  • SharlongWen
  • daehyuh

Enlaces de referencia

  • Aviso oficial de Spring: https://spring.io/security/cve-2026-40987/
  • Calculadora CVSS: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:H/A:L&version=3.1
Descargar herramienta