
CVE-2026-46584 재현기: Apache Camel camel-mail의 mail.smtp.* 헤더 주입으로 경로상 SOCKS 가로채기를 통한 자격 증명 탈취 가능 (4.14.8/4.18.3/4.21.0에서 수정됨)
| 런타임 | 디렉터리 | 스택 |
|---|
| 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에서 수정됨), 두 버전 모두 동일한 결함을 보여줍니다:
메일 프로듀서의 getSender()는 연결 전에 모든 인바운드 mail.smtp.* 메시지 헤더를 JavaMail 세션에 접습니다.
이러한 이름은 Camel 접두사가 없는 일반 문자열이므로 HTTP 경계 필터
(HttpHeaderFilterStrategy, Camel*만 제거함)는 인증되지 않은 HTTP 클라이언트가 이를 설정할 수 있게 합니다. 두 개의 추가
요청 헤더(mail.smtp.socks.host / mail.smtp.socks.port)는 피해자의 인증된 SMTP
연결을 공격자가 제어하는 SOCKS 프록시를 통해 터널링하여 평문 AUTH LOGIN 자격 증명을 수집합니다 —
피해자의 전송은 여전히 성공하므로 차단은 눈에 띄지 않습니다.
각 하위 디렉터리는 자체 Dockerfile, docker-compose.yml 및 README를 갖춘 독립 실행형 프로젝트입니다 —
"정상적인" SMTP 서버와 공격자의 SOCKS 프록시는 모두 JVM 내에서 실행되므로 외부 서비스가 필요하지 않습니다. 간단히 말해, 둘 중 하나에 대해:
cd camel-spring-boot # 또는: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
| 속성 | 값 |
|---|---|
| 구성 요소 | camel-mail |
| CWE | CWE-20 (부적절한 입력 검증) / CWE-200 (정보 노출) |
| 영향 | 인바운드 mail.smtp.* 헤더가 JavaMail 세션을 재작성 → 전송 차단, 자격 증명 탈취, 신뢰/TLS 약화 |
| 영향을 받는 버전 | 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-23522 |
이 재현기는 공개적으로 공개되고 수정된 취약점에 대한 보안 연구 및 승인된 테스트 전용으로 제공됩니다. 명시적 허가 없이 시스템에 대해 사용하지 마십시오.