CVE-2026-60093

Relative path traversal vulnerability in Apache Camel Azure-Storage Datalake component This issue affects Apache Camel: from 4.0.0 before 4.14.9, from 4.15.0 before 4.18.4, from 4.19.0 before 4.22.0. The camel-azure-storage-datalake component can download an Azure Data Lake Storage Gen2 file to the local filesystem through its downloadToFile operation, writing into the directory named by the fileDir endpoint option. DataLakeFileOperations.downloadToFile built the local target by joining fileDir with the remote path name exactly as the Azure SDK reported it (new File(fileDir, fileClientWrapper.getFileName())) and passed the result straight to the SDK download call, with no lexical normalization and no check that the resolved location stayed inside fileDir. The remote name is not route-controlled data: the consumer enumerates the filesystem in DataLakeConsumer.createBatchExchangesFromPath, which lists paths and creates one exchange per entry from PathItem.getName() verbatim, applying no name filtering by default. A path name containing parent-directory segments therefore resolved to a location outside the configured fileDir, letting anyone able to influence the names present in the consumed Data Lake filesystem cause Camel to create or overwrite a file at a location of their choosing, with the privileges of the Camel process. Depending on what the process can write to, overwriting a file outside the download directory can escalate beyond the loss of integrity of that file. The fileDir option is an ordinary common-group configuration parameter and carries no security marker, so nothing signalled to users that its value was not being enforced as a containment boundary. Camel's other file-download consumers - camel-file, camel-ftp, camel-smb, camel-mina-sftp and camel-azure-files - already constrained their local downloads to the configured directory using a path-segment boundary check; the camel-azure-storage-datalake download path was not covered by that work. Users are recommended to upgrade to version 4.22.0, which fixes the issue. If users are on the 4.14.x LTS releases stream, then they are suggested to upgrade to 4.14.9. If users are on the 4.18.x releases stream, then they are suggested to upgrade to 4.18.4. For deployments that cannot upgrade immediately, constrain the names the consumer will act on using the regex endpoint option, which is applied to each listed path name as a full-string match, so that only simple single-segment names are accepted and any name carrying a path separator or a parent-directory segment is filtered out before an exchange is created. Alternatively, avoid the downloadToFile operation on untrusted filesystems and write the payload from the route under a file name the route itself controls, rather than one taken from the remote listing. As defence in depth, treat the object names in any externally writable Data Lake filesystem as untrusted input and do not derive local filesystem paths from them.
References
Link Resource
https://camel.apache.org/security/CVE-2026-60093.html Mailing List Vendor Advisory
http://www.openwall.com/lists/oss-security/2026/08/24/8 Mailing List Third Party Advisory
Configurations

Configuration 1 (hide)

OR cpe:2.3:a:apache:camel:*:*:*:*:*:*:*:*
cpe:2.3:a:apache:camel:*:*:*:*:*:*:*:*
cpe:2.3:a:apache:camel:*:*:*:*:*:*:*:*

History

12 Oct 2026, 15:10

Type Values Removed Values Added
Summary
  • (es) Vulnerabilidad de salto de ruta relativo en el componente Apache Camel Azure-Storage Datalake Este problema afecta a Apache Camel: desde 4.0.0 antes de 4.14.9, desde 4.15.0 antes de 4.18.4, desde 4.19.0 antes de 4.22.0. El componente camel-azure-storage-datalake puede descargar un archivo de Azure Data Lake Storage Gen2 al sistema de archivos local a través de su operación downloadToFile, escribiendo en el directorio nombrado por la opción de endpoint fileDir. DataLakeFileOperations.downloadToFile construyó el destino local uniendo fileDir con el nombre de ruta remoto exactamente como lo informó el SDK de Azure (new File(fileDir, fileClientWrapper.getFileName())) y pasó el resultado directamente a la llamada de descarga del SDK, sin normalización léxica y sin verificar que la ubicación resuelta permaneciera dentro de fileDir. El nombre remoto no es un dato controlado por la ruta: el consumidor enumera el sistema de archivos en DataLakeConsumer.createBatchExchangesFromPath, que lista rutas y crea un intercambio por entrada de PathItem.getName() textualmente, sin aplicar ningún filtro de nombre por defecto. Un nombre de ruta que contiene segmentos de directorio padre, por lo tanto, se resolvió en una ubicación fuera del fileDir configurado, permitiendo que cualquiera capaz de influir en los nombres presentes en el sistema de archivos de Data Lake consumido haga que Camel cree o sobrescriba un archivo en una ubicación de su elección, con los privilegios del proceso de Camel. Dependiendo de dónde pueda escribir el proceso, sobrescribir un archivo fuera del directorio de descarga puede escalar más allá de la pérdida de integridad de ese archivo. La opción fileDir es un parámetro de configuración común de grupo ordinario y no lleva ningún marcador de seguridad, por lo que nada indicaba a los usuarios que su valor no se estaba aplicando como un límite de contención. Otros consumidores de descarga de archivos de Camel - camel-file, camel-ftp, camel-smb, camel-mina-sftp y camel-azure-files - ya restringían sus descargas locales al directorio configurado utilizando una verificación de límite de segmento de ruta; la ruta de descarga de camel-azure-storage-datalake no estaba cubierta por ese trabajo. Se recomienda a los usuarios actualizar a la versión 4.22.0, que corrige el problema. Si los usuarios están en la rama de versiones LTS 4.14.x, se les sugiere actualizar a 4.14.9. Si los usuarios están en la rama de versiones 4.18.x, se les sugiere actualizar a 4.18.4. Para implementaciones que no pueden actualizarse inmediatamente, restrinja los nombres sobre los que actuará el consumidor utilizando la opción de endpoint regex, que se aplica a cada nombre de ruta listado como una coincidencia de cadena completa, de modo que solo se acepten nombres simples de un solo segmento y cualquier nombre que contenga un separador de ruta o un segmento de directorio padre se filtre antes de que se cree un intercambio. Alternativamente, evite la operación downloadToFile en sistemas de archivos no confiables y escriba la carga útil de la ruta bajo un nombre de archivo que la propia ruta controle, en lugar de uno tomado del listado remoto. Como defensa en profundidad, trate los nombres de objetos en cualquier sistema de archivos de Data Lake escribible externamente como entrada no confiable y no derive rutas de sistema de archivos locales a partir de ellos.

Information

Published : 2026-08-24 17:17

Updated : 2026-10-12 15:10


NVD link : CVE-2026-60093

Mitre link : CVE-2026-60093

CVE.ORG link : CVE-2026-60093


JSON object : View

Products Affected

apache

  • camel
CWE
CWE-23

Relative Path Traversal