🇰🇷 한글 설명
Spring Integration 프레임워크의 Kryo Codec 구현체에서 발생하는 취약점입니다. Kryo가 기본 설정으로 사용될 경우 등록되지 않은 모든 클래스를 요구 시점에 해석하므로, 악성 코드가 포함된 데이터를 통해 역직렬화 가젯 공격이 가능합니다.
💡 쉬운 설명
데이터를 읽어오는 과정에서 검증되지 않은 외부 코드가 실행될 수 있는 보안 구멍이 있습니다. 해커가 보낸 특수한 데이터를 받으면 시스템이 해커의 명령을 그대로 수행할 위험이 있습니다.
🇺🇸 원문 (English)
Spring Integration framework provides Kryo Codec implementations as an alternative for Java (de)serialization. When Kryo is configured with default options, all unregistered classes are resolved on demand. This leads to the "deserialization gadgets" exploit when provided data contains malicious code for execution during deserialization. In order to protect against this type of attack, Kryo can be configured to require a set of trusted classes for (de)serialization. Spring Integration should be proactive against blocking unknown "deserialization gadgets" when configuring Kryo in code.
📍 영향받는 시스템
Spring Integration (Kryo Codec를 사용하는 버전)
⚔️ 공격 벡터
악성 코드가 포함된 직렬화된 데이터를 전송하여 역직렬화 과정에서 임의의 코드 실행 유도
🛡️ 대응 방법
Kryo 설정 시 신뢰할 수 있는 클래스 목록(Allowlist)을 명시적으로 지정하여 미등록 클래스 해석 차단
🔧 검증 코드
검색된 라이브러리 파일 내에 Kryo Codec 설정이 기본값으로 사용되고 있는지 소스 코드 및 설정 파일 확인
find / -name "*spring-integration*" 2>/dev/null