
Apache Camel camel-as2의 CVE-2026-80344에 대한 실행 가능한 개념 증명(PoC) 재현 도구로, 취약한 빌드와 수정된 빌드에서 비동기 MDN SSRF 및 자격 증명 노출을 시연합니다.
AS2 수신기가 비동기 MDN(Message Disposition Notification)을 발신자가 제공한 주소(Receipt-Delivery-Option)로
아무런 제약 없이 전달하는 Apache Camel 취약점에 대한 실행 가능한 개념 증명(PoC) 재현 도구입니다. 따라서 원격 파트너가
MDN 전달 시 Camel 인스턴스가 접속할 호스트를 선택할 수 있습니다. 이는 AS2 수신기의 위치에서 발생하는 서버 측 요청 위조(SSRF)로,
배포 환경의 네트워크 내부에서만 라우팅 가능한 호스트에 도달할 수 있습니다. 또한 MDN 전달이 자격 증명과 함께 구성된 경우,
해당 자격 증명이 공격자가 선택한 목적지에 제시됩니다.
| 런타임 | 디렉터리 | 스택 |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.5.13 + camel-as2 4.22.0 (영향받음; 4.22.1에서 수정) |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.29.0 + camel-quarkus-as2 3.29.0 (Camel 4.15.0, 영향받음; 수정된 대조군 3.40.0 / Camel 4.22.1) |
이 앱은 하나의 JVM에서 다음을 실행합니다:
as2://server/listen, 포트 8888);as2://client/send)로,
receiptDeliveryOption이 내부 전용 URL(127.0.0.1:9099, Docker가 게시하지 않는 포트 — 배포 환경 내부에서만 도달 가능한 호스트를 대신함)을 가리킴;영향받는 빌드에서는 수신기가 MDN을 전달하기 위해 공격자가 선택한 내부 URL에 접속하며 자신의 MDN 전달 자격 증명(Authorization: Basic …)을
그 URL에 제시합니다. 수정된 빌드에서는 해당 자격 증명이 억제되며(허용 목록에 있는 호스트에만 첨부됨), 새로운 asyncMdnAllowedHosts 옵션이
전달 호스트를 전면적으로 제한합니다.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
영향을 받은 빌드에서 예상되는 출력:
Internal host connections observed:
POST /internal-mdn-sink (Authorization=Basic bWRuLXBhcnRuZXItdXNlcjpNRE4tREVMSVZFUlktU0VDUkVU)
>>> PROVEN: the AS2 receiver connected to the sender-chosen internal URL to deliver the async MDN
>>> (server-side request forgery) AND presented its configured MDN-delivery credentials ...
(Authorization 값은 mdn-partner-user:MDN-DELIVERY-SECRET로 디코딩됩니다.) 수정된 빌드에서는 연결에
Authorization=null이 표시됩니다. 즉, 자격 증명이 더 이상 발신자가 선택한 호스트에 제시되지 않습니다.
| 속성 | 값 |
|---|---|
| 구성 요소 | camel-as2 |
| CWE | CWE-918 (서버 측 요청 위조); 자격 증명 노출 (CWE-200) |
| 심각도 | HIGH |
| 공격 벡터 | 공격자가 선택한 Receipt-Delivery-Option 주소로 비동기 MDN을 요청하는 AS2 발신자 |
| 영향 | 수신자로부터의 서버 측 요청 위조 (내부 호스트 접근 가능); 공격자가 선택한 호스트로 MDN 전달 자격 증명 노출 |
| 영향받는 버전 | 4.0.0부터 4.18.5 이전, 4.19.0부터 4.22.1 이전 |
| 수정된 버전 | 4.18.5, 4.22.1, 4.23.0 |
| JIRA | CAMEL-24417 |
| 크레딧 | Claude Security Scan Tool |
권고문: https://camel.apache.org/security/CVE-2026-80344.html
비동기 MDN 대상은 이제 인바운드 메시지에서 그대로 가져오는 대신 제한됩니다. 새로운
asyncMdnAllowedHosts 옵션(레이블 security)은 MDN이 전달될 수 있는 호스트를 허용 목록으로 지정하며,
구성된 MDN 전달 자격 증명은 대상이 허용 목록에 포함된 경우에만 첨부됩니다. 따라서 기본적으로
(허용 목록 없음) 자격 증명은 발신자가 선택한 호스트에 절대 제시되지 않습니다.
AS2 수신자로부터의 아웃바운드 연결을 수신자가 정당하게 영수증을 전달하는 파트너 엔드포인트로 제한하고, 해당 파트너 외의 다른 호스트에 유효한 자격 증명을 MDN 전달에 첨부하지 마십시오.
이 저장소는 교육 및 방어 목적으로 게시됩니다. Apache Camel 사용자가 취약점을 이해하고, 영향을 받는지 확인하며, 업그레이드가 이를 해결하는지 검증할 수 있도록 돕기 위함입니다. "자격 증명"과 내부 싱크는 동작하지 않는 로컬 픽스처입니다. 소유하거나 운영하지 않는 시스템에 이 자료를 사용하지 마십시오.