
Reproductor y análisis de CVE-2026-79986, un path traversal en Apache Camel camel-azure-files donde los nombres del listado de recursos compartidos escapan del directorio sondeado.
Repositorio de reproducción de la vulnerabilidad de Apache Camel en la que el consumidor azure-files —que deriva de la misma clase base RemoteFileConsumer que los demás consumidores de archivos remotos y compone la ruta remota mediante un helper de concatenación simple— construye la ruta remota de cada archivo sondeado concatenando el directorio configurado con el nombre reportado en el listado del recurso compartido de Azure File, sin ninguna comprobación de contención. Por lo tanto, un nombre de listado que no sea un único segmento de ruta se resolvía fuera del directorio sondeado para la recuperación y, con delete/move/preMove/moveFailed/readLock=rename, para el borrado o el renombrado.
Este reproductor es solo para autores — véase más abajo — y es el hermano de Azure-Files de los reproductores ejecutables CVE-2026-79983 (
camel-ftp) y CVE-2026-79984 (camel-mina-sftp), que demuestran la misma causa raíz y la misma corrección de extremo a extremo contra un servidor malicioso embebido.
Por ello, este repositorio contiene el cableado exacto del consumidor afectado (una ruta real de camel-azure-files, véase AzureFilesRoute.java / AzureFilesRoutes.java), documenta el mecanismo y la corrección, y remite la demostración ejecutable de extremo a extremo a los reproductores de FTP y SFTP anteriores.
| Runtime | Directorio | Stack |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.5.13 + camel-azure-files 4.22.0 (afectado; corregido en 4.22.1) |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.29.0 + camel-quarkus-azure-files 3.29.0 (Camel 4.15.0, afectado) |
Ambos módulos compilan y arrancan sin problemas sin credenciales de Azure (la ruta está definida con autoStartup=false). Establezca
-Daz.enabled=true con az.account/az.share/az.sharedKey para apuntar la ruta exacta afectada a un recurso compartido de Azure File
propio.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack # prints the explanation + links to the runnable PoCs
docker compose down
| Propiedad | Valor |
|---|---|
| Componente | camel-azure-files (esquema azure-files) |
| CWE | CWE-22 (Limitación incorrecta de un nombre de ruta a un directorio restringido) |
| Gravedad | ALTA |
| Vector de ataque | Un nombre de listado de recurso compartido (proporcionado por el servidor) que no es un único segmento de ruta |
| Impacto | Lectura — y, con delete/move/readLock=rename, eliminación o renombrado — de archivos fuera del directorio sondeado, usando las credenciales del endpoint |
| Versiones afectadas | Desde 4.0.0 anterior a 4.18.5, desde 4.19.0 anterior a 4.22.1 |
| Versiones corregidas | 4.18.5, 4.22.1, 4.23.0 |
| JIRA | CAMEL-24487 |
| Crédito | Dilrevx de NSSL, SJTU |
Aviso: https://camel.apache.org/security/CVE-2026-79986.html
El consumidor de azure-files ahora aplica la misma comprobación de contención que los demás consumidores de archivos remotos: una ruta resuelta que queda fuera del directorio sondeado se omite con una advertencia, de modo que un nombre de listado que contenga segmentos de recorrido de rutas ya no llega al operando de recuperación/eliminación/renombrado.
Restrinja el consumidor con filter/antInclude/include para aceptar solo nombres de un único segmento, y evite
delete/move/preMove/moveFailed/readLock=rename contra recursos compartidos cuyos listados no sean totalmente confiables.
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. No utilice este material contra sistemas que no sean de su propiedad o que no opere.