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-79983 — Reproductor de prueba de concepto ejecutable para CVE-2026-79983, un path traversal en los consumidores camel-ftp de Apache Camel, con fixtures de servidor FTP malicioso y compilaciones afectadas frente a corregidas. | Kitploit
Herramientas/GitHubGitHub/oscerd/cve-2026-79983
Herramientas DefensivasAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHuboscerd/cve-2026-79983

CVE-2026-79983

Reproductor de prueba de concepto ejecutable para CVE-2026-79983, un path traversal en los consumidores camel-ftp de Apache Camel, con fixtures de servidor FTP malicioso y compilaciones afectadas frente a corregidas.

Ver Repositorio
12hace 3 díasAú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-79983 — camel-ftp: el consumidor construye la ruta remota a partir del listado del servidor sin contención

Reproductor de prueba de concepto ejecutable para la vulnerabilidad de Apache Camel en la que los consumidores de archivos remotos sondean un directorio en un servidor remoto y construyen la ruta remota absoluta de cada archivo concatenando el directorio configurado con el nombre de archivo reportado en el listado del directorio del servidor, sin normalización léxica y sin comprobar que el resultado permanezca dentro del directorio sondeado. Esa ruta se convierte entonces en el operando para la recuperación (siempre), y para el borrado o renombrado cuando se configura delete=true, move, preMove, moveFailed o readLock=rename.

Un nombre de listado no es un dato controlado por la ruta — lo proporciona el servidor remoto, y el canal de control FTP no tiene protección de integridad, por lo que un atacante en la ruta puede reescribir una respuesta LIST, y un servidor comprometido o multiinquilino puede emitir tal nombre directamente. La opción documentada y activada por defecto jailStartingDirectory no restringía este operando remoto.

Entorno de ejecuciónDirectorioStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-ftp 4.22.0 (afectado; corregido en 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-ftp 3.29.0 (Camel 4.15.0, afectado)

La corrección se distribuye en Camel 4.18.5 / 4.22.1 / 4.23.0; el módulo Spring Boot ejecuta tanto la compilación afectada (4.22.0) como la compilación corregida (4.22.1). Ninguna versión publicada de Camel Quarkus incluye todavía un Camel corregido.

Qué demuestra

La aplicación incorpora un servidor FTP deliberadamente malicioso (Apache MINA FtpServer con un VFS en memoria) que lista, en el directorio sondeado /upload:

  • normal.txt — un archivo legítimo dentro del directorio, y
  • d/../../outside.txt — una entrada manipulada cuyo nombre no es un único segmento de ruta. No comienza con un punto (por lo que la regla de archivos ocultos de Camel no la detecta), y /upload + d/../../outside.txt se resuelve en /outside.txt, un nivel por encima del directorio sondeado.

Un consumidor FTP simple de Camel sondea /upload. En la compilación afectada recupera ambas entradas — incluyendo /outside.txt, un archivo al que nunca debería llegar. En la compilación corregida conserva normal.txt y omite la entrada que escapa, registrando Skipping file as it resolves outside the starting directory: upload/d/../../outside.txt.

cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

Salida esperada en la compilación afectada:

What the Camel consumer retrieved:
    name=[normal.txt]  (inside)
    name=[d/../../outside.txt]  <<< FILE FROM OUTSIDE THE POLLED DIRECTORY
        content: OUTSIDE-SECRET (/outside.txt, a file the consumer should never reach)

Paths the server was asked to read:
    upload/normal.txt  ->  /upload/normal.txt
    upload/d/../../outside.txt  ->  /outside.txt

Resumen de la vulnerabilidad

PropiedadValor
Componentecamel-ftp (esquemas ftp, ftps, sftp)
CWECWE-22 (Limitación incorrecta de un nombre de ruta a un directorio restringido)
SeveridadALTA
Vector de ataqueUna entrada LIST (proporcionada por el servidor, reescribible en un canal de control FTP no autenticado) que no es un único segmento de ruta
ImpactoLectura — y, con delete/move/readLock=rename, borrado o renombrado — de archivos fuera del directorio sondeado, usando las credenciales del endpoint
Versiones afectadasDesde 4.0.0 anterior a 4.18.5, desde 4.19.0 anterior a 4.22.1
Versiones corregidas4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24487
CréditoDilrevx de NSSL, SJTU

Aviso: https://camel.apache.org/security/CVE-2026-79983.html

La corrección

Una sobrecarga de GenericFileHelper.isWithinDirectory consciente de los separadores y una estrategia GenericFileConsumer.isWithinStartingDirectory (consultada desde isValidFile cuando jailStartingDirectory está habilitado) compactan la ruta resuelta y verifican, en los límites de los segmentos de ruta, que esta siga resolviéndose dentro del directorio sondeado. Un archivo que se resuelve fuera se omite con una advertencia (de modo que otras entradas legítimas del mismo listado se siguen procesando). RemoteFileConsumer y SmbConsumer sobrescriben la comprobación; la implementación base local es una operación nula, ya que los nombres de los listados locales siempre son segmentos únicos.

Mitigación si no puede actualizar

Prefiera sftp/ftps en lugar de ftp para que el listado no pueda reescribirse en tránsito, y verifique la clave del host/certificado. Restrinja el consumidor con filter, antInclude o include para aceptar solo nombres de un único segmento, y evite delete=true/move/preMove/moveFailed/readLock=rename contra servidores cuyos listados no sean plenamente confiables. Cuando sea posible, confine la cuenta del servidor al directorio sondeado.

Descargo de responsabilidad

Este repositorio se publica con fines educativos y defensivos: para ayudar a los usuarios de Apache Camel a comprender la vulnerabilidad, verificar si se ven afectados y confirmar que la actualización la resuelve. El servidor malicioso y el "secreto" son elementos locales inertes. No utilice este material contra sistemas que no sean de su propiedad o que no opere.

Descargar herramienta