CVE-2026-79986
Apache Camel: camel-azure-files 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 directorios 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 inadecuada de un nombre de ruta a un directorio restringido ('Path Traversal') en el componente Azure Files de Apache Camel. Este problema afecta a Apache Camel: desde 4.0.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 de 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 de listado que no fuera un único segmento de ruta se resolvía a 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 comunes. 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 se restringió 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 azure-files. Su consumidor deriva de la misma clase base RemoteFileConsumer y componía la ruta remota mediante un ayudante de concatenación simple, por lo que heredaba la misma resolución sin restricciones. Alcanzarlo requiere un nombre de listado que no sea un único segmento de ruta, que el servicio REST de Azure Files normalmente no devuelve; 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 vida útil y no recibe esta corrección; los usuarios de la misma deben pasar a una rama de versiones compatible.
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.