CVE-2026-79985
Apache Camel: camel-smb resolvía la ruta remota de un archivo sondeado a partir del nombre reportado en el listado del directorio del servidor sin restringirlo al directorio que se estaba sondeando, por lo que una entrada del listado que contuviera segmentos de recorrido de rutas podía moverse fuera
- Publicado
- 19 oct 2026
- Actualizado
- 20 oct 2026
- Asignación de CNA
- apache
- Evidencia observada
- 17 oct 2026
CVSS primario
cvelist · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:NResumen
Vulnerabilidad de limitación incorrecta de un nombre de ruta a un directorio restringido ('Path Traversal') en el componente SMB de Apache Camel. Este problema afecta a Apache Camel: desde 4.2.0 antes de 4.18.5, desde 4.19.0 antes de 4.22.1. Los consumidores de archivos remotos de Camel 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. Esa concatenación (FtpUtils.absoluteFilePath y GenericFileConsumer) no aplicaba ninguna normalización léxica ni ninguna comprobación de que el resultado permaneciera dentro del directorio que se estaba sondeando, y la ruta resultante se convertía en el operando de cada operación remota posterior sobre el archivo: recuperación (FtpOperations.retrieveFile / SftpOperations, alcanzada desde GenericFileConsumer donde el nombre de recuperación se toma literalmente de GenericFile.getAbsoluteFilePath), eliminación cuando delete=true (GenericFileDeleteProcessStrategy), y renombrado cuando se configura move, preMove, moveFailed o readLock=rename (GenericFileProcessStrategySupport y GenericFileRenameExclusiveReadLockStrategy). Ni isValidFile ni isMatched realizaban ninguna comprobación de contención. Por lo tanto, una entrada del listado que no fuera un único segmento de ruta se resolvía en una ruta fuera del directorio de sondeo configurado, provocando que Camel leyera, eliminara o renombrara archivos fuera de él usando las propias credenciales del endpoint. Un nombre de listado no es un dato controlado por la ruta. Lo proporciona el servidor remoto, y el canal de control FTP no lleva ninguna protección de integridad en absoluto, por lo que un atacante en la ruta puede reescribir una respuesta LIST sin poseer ninguna credencial; un servidor comprometido, malicioso o multiinquilino, o un servidor respaldado por un sistema de archivos virtual, puede emitir dicho nombre directamente. La recuperación es alcanzable en una configuración de consumidor predeterminada, ya que los consumidores remotos descargan cada archivo listado; la eliminación y el renombrado requieren además una de las opciones de disposición anteriores, todas ellas habituales. El escape del directorio que Camel estaba configurado para sondear es incondicional, mientras que el escape del propio límite de cuenta del servidor depende además de si ese servidor confina la cuenta. La opción jailStartingDirectory, que está documentada como restrictiva de Camel al directorio de inicio y está habilitada por defecto, regía las escrituras del productor y, desde el trabajo de contención de localWorkDirectory, las descargas del consumidor al directorio de trabajo local, pero no restringía este operando remoto, por lo que su nombre y descripción reclamaban un límite que no se aplicaba aquí. El mismo punto de entrada ya había sido reconocido en el lado local: la ruta de descarga de localWorkDirectory fue restringida para que un nombre de archivo remoto que contuviera segmentos de directorio padre no pudiera resolverse fuera del directorio de trabajo local. El operando remoto era la mitad restante de esa superficie. Este artefacto proporciona el esquema smb. Su consumidor recorre el listado del recurso compartido por su cuenta en lugar de hacerlo a través de RemoteFileConsumer, omitiendo solo las entradas exactas "." y "..", por lo que un nombre que portara segmentos de traversal de cualquier otra forma se concatenaba sin comprobación. Alcanzarlo requiere un servidor que emita un nombre de listado que no sea un único segmento de ruta, algo que una implementación de SMB2 conforme no hace; la exposición se corrigió sobre la misma base que los demás consumidores de archivos remotos en lugar de a partir de una prueba de concepto demostrada contra este esquema. Actualice a Apache Camel 4.23.0, que corrige el problema. Los usuarios de la rama de versiones 4.22.x deben actualizar a 4.22.1. Los usuarios de la rama de versiones LTS 4.18.x deben actualizar a 4.18.5. La rama 4.14.x alcanzó el fin de su ciclo de vida y no recibe esta corrección; los usuarios de la misma deben pasar a una rama de versiones soportada.
Uso responsable
Utilice información sobre vulnerabilidades solo en sistemas de su propiedad o que esté autorizado a probar. Kitploit enlaza con metadatos de investigación pública y no almacena código de explotación ni cargas útiles maliciosas.