🇰🇷 한글 설명
Linux 커널의 SCTP 프로토콜 구현에서 쿠키 인증이 비활성화된 경우, COOKIE-ECHO 과정에서 복원된 INIT 청크에 대한 검증이 누락되어 발생합니다. 공격자가 조작된 쿠키를 전송할 경우 검증되지 않은 데이터를 처리하게 되어 보안 취약점이 발생할 수 있습니다.
💡 쉬운 설명
인터넷 통신 규약 중 하나인 SCTP에서, 서버가 받은 데이터가 진짜인지 확인하지 않고 그대로 믿어버리는 문제입니다. 해커가 가짜 데이터를 섞어 보내면 시스템이 잘못된 정보를 처리하게 될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
sctp: add INIT verification after cookie unpacking
In SCTP handshake, the INIT chunk is initially processed by the server
and embedded into the cookie carried in INIT-ACK. The client then
returns this cookie via COOKIE-ECHO, where the server unpacks it and
reconstructs the original INIT chunk.
When cookie authentication is enabled, the cookie contents are protected
against tampering, so reusing the unpacked INIT without re-verification
is safe.
However, when cookie authentication is disabled, the reconstructed INIT
can no longer be trusted. In this case, the INIT must be explicitly
validated after unpacking to avoid processing potentially tampered data.
Add sctp_verify_init() checks after cookie unpacking in COOKIE-ECHO
processing paths (sctp_sf_do_5_1D_ce() and sctp_sf_do_5_2_4_dupcook())
when cookie_auth_enable is disabled. On failure, the new association is
freed and the packet is discarded.
Also tighten cookie validation in sctp_unpack_cookie() by verifying the
embedded chunk type is SCTP_CID_INIT before treating it as an INIT
chunk.
Finally, update sctp_verify_init() to validate parameter bounds using
the actual embedded INIT length instead of chunk->chunk_end, since the
INIT stored in COOKIE-ECHO may not span the entire chunk buffer.
📍 영향받는 시스템
SCTP 쿠키 인증 기능이 비활성화된 Linux 커널 시스템
⚔️ 공격 벡터
조작된 SCTP COOKIE-ECHO 패킷을 전송하여 검증되지 않은 INIT 청크를 서버에 주입
🛡️ 대응 방법
SCTP 쿠키 인증을 활성화하거나, 해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 보안 업데이트 버전인지 배포판 보안 공지를 통해 확인