🇰🇷 한글 설명
SerializingHttpMessageConverter가 클래스 필터링 없이 java.io.ObjectInputStream을 사용하여 HTTP 요청 본문을 역직렬화합니다. 공격자가 특정 Content-Type을 사용하여 조작된 객체를 전송할 경우, 클래스패스에 존재하는 가젯을 이용해 원격에서 임의 코드를 실행할 수 있습니다.
💡 쉬운 설명
서버가 외부에서 들어오는 데이터를 검사 없이 그대로 읽어들이는 과정에서 보안 구멍이 발생했습니다. 해커가 특수하게 제작된 데이터를 보내면 서버의 제어권을 통째로 뺏길 수 있는 위험한 상태입니다.
🇺🇸 원문 (English)
SerializingHttpMessageConverter deserializes the body of incoming HTTP requests with a raw java.io.ObjectInputStream and no class filtering. Any request with Content-Type application/x-java-serialized-object whose body resolves to a Serializable type is read directly via readObject(). If an application using this converter on an inbound HTTP endpoint has any known Java deserialization "gadget" on its classpath, a remote, unauthenticated attacker can achieve arbitrary code execution.
Spring Integration 7.1.0
Spring Integration 7.0.0 - 7.0.5
Spring Integration 6.5.0 - 6.5.10
Spring Integration 6.4.0 - 6.4.12
Spring Integration 5.5.21 and earlier
📍 영향받는 시스템
Spring Integration 7.1.0, 7.0.0-7.0.5, 6.5.0-6.5.10, 6.4.0-6.4.12, 5.5.21 및 이전 버전
⚔️ 공격 벡터
Content-Type이 application/x-java-serialized-object인 조작된 HTTP 요청을 통한 원격 공격
🛡️ 대응 방법
Spring Integration을 보안 패치가 적용된 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 결과에서 사용 중인 Spring Integration의 버전을 확인하여 취약한 버전 범위에 포함되는지 검토하십시오.
mvn dependency:tree | grep 'org.springframework.integration'