
CVE-2026-48206 재현기: Apache Camel camel-jira IssueKey (및 기타 Camel 접두사가 붙지 않은) 헤더 주입을 통해 엔드포인트의 서비스 계정 자격 증명으로 임의의 JIRA 이슈 작업을 수행하는 취약점 (4.14.8/4.18.3/4.21.0에서 수정됨)
IssueKey 헤더 인젝션동일한 Apache Camel 취약점에 대한 실행 가능한 개념 증명(PoC) 재현 코드로, 런타임별로 하나씩 제공됩니다:
| 런타임 | 디렉터리 | 스택 |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (Camel 4.20.0 번들 포함) |
두 버전 모두 영향을 받는 버전이며(4.14.8 / 4.18.3 / 4.21.0에서 수정됨), 동일한 결함을 보여줍니다:
camel-jira 프로듀서는 Exchange 메시지 헤더에서 작업 파라미터(이슈 키, 프로젝트 키, 전환 ID, …)를 읽습니다.
해당 헤더의 상수 — IssueKey, ProjectKey, IssueTransitionId, … — 는 접두사가 없는, Camel 접두어가 아닌
문자열입니다. HTTP 경계 필터(HttpHeaderFilterStrategy)는 Camel*만 제거하므로, 해당 이름을 가진 인바운드 HTTP 헤더는
Exchange로 그대로 전달되어 라우트가 처리하는 값을 덮어씁니다. 인증되지 않은 클라이언트가
IssueKey: PROD-999를 주입하면 라우트의 서비스 계정이 임의의 이슈를 삭제합니다(CWE-639).
각 하위 디렉터리는 자체 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
이 수정은 헤더 상수를 CamelJira* 규칙(예: CamelJiraIssueKey)으로 변경하여, 다른 모든 Camel* 헤더와
마찬가지로 HTTP 경계에서 제거되도록 합니다.
보안 권고: https://camel.apache.org/security/CVE-2026-48206.html
이 재현 코드는 공개적으로 공개되었고 수정된 취약점에 대한 보안 연구 및 승인된 테스트 전용으로 제공됩니다. 명시적 허가 없이 시스템을 대상으로 사용하지 마십시오.
| 속성 | 값 |
|---|
| 구성 요소 | camel-jira |
| CWE | CWE-20 (Improper Input Validation) / CWE-639 (Authorization Bypass Through User-Controlled Key) |
| 영향 | 엔드포인트의 서비스 계정 자격 증명으로 임의의 JIRA 작업(삭제/전환/생성/수정)을 수행 |
| 영향을 받는 버전 | 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-23576 (PR apache/camel#23417) |
| 제보자 | Yu Bao (PayPal) |