CVE-2026-43866
Apache Camel, Apache Camel: Camel JMS - CVE-2026-40860 수정 우회 (DefaultExchangeHolder 경유)
- 게시됨
- 2026. 7. 6.
- 업데이트됨
- 2026. 7. 6.
- CNA 할당 중
- apache
- 증거 관찰됨
- 2026. 8. 6.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L낮음 · 다음 30일
- 백분위수
- 49.5%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
# Apache Camel의 신뢰할 수 없는 데이터 역직렬화 취약점 Apache Camel 및 Apache Camel JMS 컴포넌트의 신뢰할 수 없는 데이터 역직렬화(Deserialization of Untrusted Data) 취약점입니다. camel-jms의 JmsBinding.extractBodyFromJms() - 그리고 camel-sjms의 동일한 JmsBinding - 은 mapJmsMessage 옵션이 활성화된 경우(기본값) Camel이 JMS 소비자로 동작할 때 들어오는 JMS ObjectMessage의 페이로드를 jakarta.jms.ObjectMessage.getObject()를 통해 역직렬화합니다. CVE-2026-40860 하드닝은 기본 허용 목록 java.**;javax.**;org.apache.camel.**;!*. 외부의 클래스를 거부하는 역직렬화 후 클래스 검사를 추가했습니다. 그러나 org.apache.camel.support.DefaultExchangeHolder 자체는 허용 목록에 포함된 org.apache.camel.** 네임스페이스에 속하므로, 최상위 객체가 DefaultExchangeHolder인 ObjectMessage는 검사를 통과합니다. 수신 측은 transferExchange 옵션이 활성화되어 있지 않아도 해당 객체에 대해 DefaultExchangeHolder.unmarshal()을 호출합니다 - 이는 비대칭적 신뢰 경계입니다. 송신 측은 ObjectMessage 및 transferExchange 처리를 제한하지만 수신 측은 그렇지 않기 때문입니다 - 홀더의 모든 null이 아닌 필드를 Exchange에 기록합니다: 메시지 본문, IN 및 OUT 헤더, 교환 속성, 변수, 교환 ID 및 예외. 영향을 받는 Camel 애플리케이션이 소비하는 큐 또는 토픽에 ObjectMessage를 게시할 수 있는 공격자는 역직렬화 가젯 체인 없이도 보편적으로 신뢰되는 java.lang 및 java.util 타입만 사용하여 임의의 Exchange 상태를 주입하고, 라우팅과 헤더, 교환 속성 및 오류 처리를 조작할 수 있습니다. 동일한 처리가 camel-sjms 및 camel-sjms2, 그리고 JmsComponent 및 JmsBinding을 기반으로 구축된 JMS 계열 컴포넌트(camel-amqp, camel-activemq, camel-activemq6)에도 적용됩니다. 이는 CVE-2026-40860 수정의 결함이 아니라 해당 수정을 우회하는 것입니다. 이 문제는 다음 Apache Camel 버전에 영향을 미칩니다: 3.0.0부터 4.14.8 이전, 4.15.0부터 4.18.3 이전, 4.19.0부터 4.21.0 이전; Apache Camel: 3.0.0부터 4.14.8 이전, 4.15.0부터 4.18.3 이전, 4.19.0부터 4.21.0 이전. 사용자는 이 문제를 해결하는 버전 4.21.0으로 업그레이드하는 것이 권장됩니다. 4.14.x LTS 릴리스 스트림을 사용 중인 경우 4.14.8로 업그레이드하는 것이 권장됩니다. 4.18.x 릴리스 스트림을 사용 중인 경우 4.18.3으로 업그레이드하는 것이 권장됩니다. 업그레이드 후에는 camel-jms, camel-sjms 및 JMS 계열 컴포넌트에서 JMS ObjectMessage 처리가 기본적으로 비활성화되며(새로운 objectMessageEnabled 옵션이 컴포넌트 및 엔드포인트 수준에서 기본적으로 false), 따라서 DefaultExchangeHolder 페이로드를 포함한 들어오는 ObjectMessage는 해당 옵션이 명시적으로 활성화되지 않는 한 더 이상 역직렬화되지 않습니다. 소비되는 JMS 대상이 신뢰할 수 있는 생산자에 의해서만 공급되는 경우에만 objectMessageEnabled=true를 설정하십시오. 즉시 업그레이드할 수 없는 배포의 경우 JMS 브로커 권한 부여를 통해 Camel이 소비하는 큐와 토픽에 대한 게시 액세스를 신뢰할 수 있는 생산자로 제한하고, ObjectMessage 본문을 신뢰할 수 없는 네트워크에 매핑하는 JMS 소비자를 노출하지 마십시오. JMS 제공자의 역직렬화 허용 목록은 이 특정 우회를 완화하지 않습니다. 제작된 페이로드가 보편적으로 신뢰되는 클래스만 사용하기 때문입니다.
소스
1책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.