🇰🇷 한글 설명
Apache CXF의 JMS 전송 모듈이 인바운드 JMS ObjectMessage 본문을 타입 제한 없이 네이티브 Java 역직렬화로 처리합니다. JMS 대상에 메시지를 보낼 수 있는 공격자는 악성 직렬화 객체를 전달해 서비스 거부 또는 클래스패스에 적합한 가젯이 있을 경우 원격 코드 실행을 유발할 수 있습니다.
💡 쉬운 설명
Apache CXF가 메시지 메일함에서 받은 데이터를 검사 없이 그대로 실행 가능한 객체로 변환합니다. 악의적인 사람이 이 메일함에 조작된 데이터를 넣으면 서버를 멈추거나 서버를 장악할 수 있습니다.
🇺🇸 원문 (English)
Apache CXF's JMS transport deserializes the body of any inbound JMS ObjectMessage using native Java deserialization, with no type restrictions in place. Any attacker able to place a message on the service's JMS destination can submit a malicious serialized object, leading to denial of service or, if a suitable gadget class is on the classpath, remote code execution. The fix disables ObjectMessage deserialization by default, with a configuration switch to re-enable it if needed. Users are recommended to upgrade to versions 4.2.3 or 4.1.8 or 3.6.12, which fix this issue.
📍 영향받는 시스템
Apache CXF 4.2.3 미만, 4.1.8 미만, 3.6.12 미만 버전 (JMS 전송 사용 시)
⚔️ 공격 벡터
JMS 대상(큐/토픽)에 악성 직렬화 ObjectMessage를 게시하여 서버에서 역직렬화를 유발
🛡️ 대응 방법
Apache CXF를 4.2.3, 4.1.8 또는 3.6.12 이상으로 업그레이드하고, 불필요한 ObjectMessage 역직렬화는 기본 비활성화 상태를 유지
🔧 검증 코드
출력된 JAR의 Implementation-Version이 4.2.3 이상(4.2.x 계열), 4.1.8 이상(4.1.x 계열), 3.6.12 이상(3.6.x 계열)이면 패치된 것이며, 그보다 낮으면 취약합니다.
find / -name 'cxf-rt-transports-jms*.jar' 2>/dev/null | xargs -I{} sh -c 'echo {}; unzip -p {} META-INF/MANIFEST.MF 2>/dev/null | grep -i implementation-version'