
CVE-2026-49365(Apache Camel camel-netty-http / camel-undertow)용 PoC 재현기: muteException의 기본값이 false이므로, 처리되지 않은 예외의 전체 Java 스택 트레이스가 HTTP 클라이언트에 반환됩니다(CWE-209). 4.14.8/4.18.3/4.21.0에서 수정되었습니다.
동일한 Apache Camel 취약점에 대한 실행 가능한 개념 증명(PoC) 재현 코드로, 런타임별로 하나씩 제공됩니다:
| 런타임 | 디렉터리 | 스택 | 포함된 컴포넌트 |
|---|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 | netty-http 및 undertow |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0(Camel 4.20.0 번들 포함) | netty-http(camel-quarkus-undertow 확장 없음) |
둘 다 영향을 받는 버전(4.14.8 / 4.18.3 / 4.21.0에서 수정됨)이며, 동일한 결함을 보여줍니다. camel-netty-http(및 camel-undertow)에서 muteException 옵션은 기본값이 false로 제공되므로, 처리 중 오류가 발생하면 전체 Java 스택 트레이스가 HTTP 클라이언트에 반환되어 내부 백엔드 호스트 이름, 데이터베이스 URL, 자격 증명/볼트 힌트, 라이브러리 버전 및 소스 위치가 누출됩니다(CWE-209). jetty/servlet 및 platform-http는 이미 기본값을 true로 설정합니다.
각 하위 디렉터리는 자체 Dockerfile, docker-compose.yml 및 README를 포함하는 독립적인 프로젝트입니다. 간단히 말하면, 둘 중 하나에 대해 다음을 실행합니다:
cd camel-spring-boot # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
보안 권고: https://camel.apache.org/security/CVE-2026-49365.html
이 재현 코드는 공개적으로 공개되었고 수정된 취약점에 대해 보안 연구 및 승인된 테스트 목적으로만 제공됩니다. 명시적인 허가 없이 시스템에 대해 사용하지 마십시오.
| 속성 | 값 |
|---|
| 컴포넌트 | camel-netty-http, camel-undertow |
| CWE | CWE-209(민감한 정보를 포함하는 오류 메시지 생성) |
| 영향 | 처리 오류 발생 시 인증되지 않은 HTTP 클라이언트에 전체 Java 스택 트레이스가 반환됨 |
| 영향을 받는 버전 | 4.0.0 이상 4.14.8 미만, 4.15.0 이상 4.18.3 미만, 4.19.0 이상 4.21.0 미만 |
| 수정된 버전 | 4.14.8, 4.18.3, 4.21.0 |
| JIRA | CAMEL-23651(PR apache/camel#23913) |
| 크레딧 | Yu Bao (PayPal) |