CVE-2026-66906
Apache Camel: Camel-Azure-Storage-Blob: la operación downloadBlobToFile construye el destino de descarga local a partir del nombre del blob remoto sin restringirlo al fileDir configurado
- Publicado
- 24 ago 2026
- Actualizado
- 25 ago 2026
- Asignación de CNA
- apache
- Evidencia observada
- 24 ago 2026
CVSS primario
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NBajo · próximos 30 días
- Percentil
- 55,3 %
- Fecha del modelo
- 23 oct 2026
EPSS es una estimación estadística, no una certeza o una medida de impacto. Combínelo con CVSS, estado KEV, exposición y su entorno.
Resumen
Vulnerabilidad de salto de ruta relativo en el componente Apache Camel Azure Storage Blob. 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-blob puede descargar un blob de Azure Storage al sistema de archivos local a través de su operación downloadBlobToFile, escribiendo en el directorio nombrado por la opción de endpoint fileDir, que está documentada como utilizable tanto por el productor como por el consumidor. BlobOperations.downloadBlobToFile construyó el destino local uniendo fileDir con el nombre del blob remoto exactamente como lo informó el SDK de Azure (new File(fileDir, client.getBlobName())) 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 del blob no es un dato controlado por la ruta: el consumidor enumera el contenedor en BlobConsumer.createBatchExchangesFromContainer, que lista blobs y crea un intercambio por entrada de BlobItem.getName() textualmente, sin aplicar filtrado de nombres por defecto. Un nombre de blob que contiene segmentos de directorio padre, por lo tanto, se resolvió a una ubicación fuera del fileDir configurado, permitiendo que cualquiera capaz de influir en los nombres presentes en el contenedor 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. Los contenedores de blobs de Azure Storage utilizan un espacio de nombres plano en el que el nombre del blob es una clave opaca, por lo que un nombre que contenga dichos segmentos se almacena y se lista tal cual. La opción fileDir es un parámetro de configuración ordinario de grupo común 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-blob 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 blob 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; la opción prefix puede además reducir la lista en el lado del servidor, teniendo en cuenta que cuando ambos están configurados, regex tiene prioridad y prefix se ignora. Alternativamente, evite la operación downloadBlobToFile en contenedores 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 de la lista remota. Como defensa en profundidad, trate los nombres de los blobs en cualquier contenedor escribible externamente como entrada no confiable y no derive rutas del sistema de archivos local a partir de ellos.
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.