🇰🇷 한글 설명
Spring Kafka의 재시도 토픽 인프라가 사용자 제어 헤더 값을 충분히 검증하지 않아 발생하는 취약점입니다. 공격자가 조작된 retry_topic-attempts 헤더를 포함한 레코드를 전송하면 재시도 횟수를 잘못 설정하여 메시지의 재시도 순서를 오인하게 만들 수 있습니다.
💡 쉬운 설명
메시지 전송 시 포함되는 특정 정보를 공격자가 마음대로 조작할 수 있는 문제입니다. 이로 인해 시스템이 메시지가 몇 번 재시도되었는지 헷갈려 하여 정상적인 처리 흐름을 방해할 수 있습니다.
🇺🇸 원문 (English)
Spring Kafka's retry topic infrastructure did not sufficiently validate user-controlled header values before acting on them. A producer could send a record with a crafted retry_topic-attempts header to supply an out-of-range attempt count and cause the retry topic router to misidentify where the message was in the retry sequence.
Affected versions:
Spring for Apache Kafka 4.0.0 through 4.0.5; 3.3.0 through 3.3.15; 3.2.0 through 3.2.13; 2.9.0 through 2.9.13; 2.8.0 through 2.8.11.
📍 영향받는 시스템
Spring for Apache Kafka 4.0.0-4.0.5, 3.3.0-3.3.15, 3.2.0-3.2.13, 2.9.0-2.9.13, 2.8.0-2.8.11
⚔️ 공격 벡터
조작된 retry_topic-attempts 헤더를 포함한 Kafka 레코드를 프로듀서를 통해 전송
🛡️ 대응 방법
취약점이 해결된 최신 버전의 Spring for Apache Kafka로 업데이트
🔧 검증 코드
명령어 결과에 취약한 버전 범위의 spring-kafka 라이브러리가 나타나면 해당 시스템은 취약한 상태입니다.
mvn dependency:tree | grep -E 'spring-kafka:[[:space:]]+(4\.0\.[0-5]|3\.3\.[0-15]|3\.2\.[0-13]|2\.9\.[0-13]|2\.8\.[0-11])'