
Reproductor y análisis de CVE-2026-79985, un path traversal en Apache Camel camel-smb donde los nombres de listado de recursos compartidos eluden la contención de directorios, con las rutas afectadas y los detalles de la corrección.
Repositorio de reproducción de la vulnerabilidad de Apache Camel en la que el consumidor smb construye la ruta remota de cada
archivo sondeado concatenando el directorio configurado con el nombre reportado en el listado del recurso compartido SMB, sin
ninguna comprobación de contención. SmbConsumer recorre el listado por sí mismo (no a través de RemoteFileConsumer), omitiendo únicamente las entradas exactas
. y .., por lo que un nombre que portara segmentos de recorrido de directorios de cualquier otra forma se concatenaba sin comprobación — resolviéndose
a una ruta fuera del directorio sondeado para su recuperación y, con delete/move/preMove/moveFailed/
readLock=rename, para su borrado o renombrado.
Este reproductor es solo para autores — véase más abajo — y es el hermano SMB de los reproductores ejecutables CVE-2026-79983 (
camel-ftp) y CVE-2026-79984 (camel-mina-sftp), que demuestran la misma causa raíz y corrección de extremo a extremo contra un servidor malicioso embebido.
Como afirma el propio aviso, alcanzar el problema a través de SMB
"requiere un servidor que emita un nombre de listado que no sea un único segmento de ruta, algo que una implementación 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."
No existe un servidor SMB malicioso embebible que emita tal nombre (a diferencia de FTP, donde el VFS de Apache MINA FtpServer puede
hacerse que lo haga, y de SFTP, donde puede sobrescribirse getShortName de Apache MINA SSHD). Por ello, este repositorio contiene el
cableado exacto del consumidor afectado (una ruta real de camel-smb, véase SmbRoute.java / SmbRoutes.java) y 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-smb 4.22.0 (afectado; corregido en 4.22.1) |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.29.0 + camel-quarkus-smb 3.29.0 (Camel 4.15.0, afectado) |
Ambos módulos compilan y arrancan sin problemas sin un servidor SMB (la ruta se define con autoStartup=false). Establezca
-Dsmb.enabled=true con smb.host/smb.share/smb.username/smb.password para apuntar la ruta exacta afectada a
un servidor SMB 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-smb (esquema smb) |
| CWE | CWE-22 (Limitación incorrecta de un nombre de ruta a un directorio restringido) |
| Severidad | 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.2.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-79985.html
SmbConsumer 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
alcanza el 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 servidores cuyos listados no sean plenamente confiables. Cuando
sea posible, limite la cuenta del servidor al directorio sondeado.
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.