camel-jms의 JmsBinding.extractBodyFromJms() 및 camel-sjms의 동등한 JmsBinding 클래스는 ObjectInputFilter, 클래스 허용 목록 또는 클래스 거부 목록을 적용하지 않고 javax.jms.ObjectMessage.getObject()를 통해 수신 JMS ObjectMessage 값의 페이로드를 역직렬화했습니다. mapJmsMessage 옵션이 활성화되고(기본값) Camel이 JMS 소비자 역할을 할 때마다 이 코드 경로에 도달하므로 공격자는 조작된 ObjectMessage를 Camel 애플리케이션에서 사용하는 대기열이나 주제에 게시할 수 있습니다.
camel-jms의 JmsBinding.extractBodyFromJms() 및 camel-sjms의 동등한 JmsBinding 클래스는 ObjectInputFilter, 클래스 허용 목록 또는 클래스 거부 목록을 적용하지 않고 javax.jms.ObjectMessage.getObject()를 통해 수신 JMS ObjectMessage 값의 페이로드를 역직렬화했습니다. mapJmsMessage 옵션이 활성화되고(기본값) Camel이 JMS 소비자 역할을 할 때마다 이 코드 경로에 도달하기 때문에 Camel 애플리케이션에서 사용하는 대기열이나 항목에 조작된 ObjectMessage를 게시할 수 있는 공격자는 역직렬화 가젯 체인이 클래스 경로에 있을 때 원격 코드 실행을 달성할 수 있습니다. Camel-sjms2(Sjms2Endpoint가 SjmsEndpoint를 확장함)와 camel-amqp(AMQPJmsBinding이 JmsBinding을 확장함)를 통해 그리고 Camel-activemq 및 Camel-activemq6과 같이 JmsComponent에 구축된 다른 JMS 제품군 구성 요소를 통해 동일한 처리가 전이적으로 이루어졌습니다.
이 문제는 Apache Camel 3.0.0 이전 4.14.7, 4.15.0 이전 4.18.2, 4.19.0 이전 4.20.0에 영향을 미칩니다.
사용자는 문제를 해결하는 버전 4.20.0으로 업그레이드하는 것이 좋습니다. 사용자가 4.14.x LTS 릴리스 스트림을 사용하는 경우 4.14.7로 업그레이드하는 것이 좋습니다. 사용자가 4.18.x 릴리스 스트림을 사용하는 경우 4.18.2로 업그레이드하는 것이 좋습니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 98.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 98.00 |
VPI 공식 vpi-v1 기준