🇰🇷 한글 설명
Linux 커널의 SCTP 프로토콜 구현에서 발생한 취약점으로, 인증된 사용자가 ASCONF DEL-IP 메시지를 통해 전송 계층(transport)을 제거할 때 발생합니다. 이 과정에서 이미 제거된 전송 계층에 대한 참조가 남아 있어, 이후 SACK 청크 처리 시 해제된 메모리 영역을 참조하게 되어 시스템 오류를 유발할 수 있습니다.
💡 쉬운 설명
네트워크 통신 방식 중 하나인 SCTP에서 연결 정보가 삭제되었음에도 불구하고, 시스템이 삭제된 정보를 계속 사용하려고 시도하면서 발생하는 문제입니다. 이로 인해 컴퓨터 시스템이 예기치 않게 멈추거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
sctp: drop a chunk if its transport was removed
sctp_rcv() resolves the transport once per packet and leaves it in
chunk->transport. The lookup reference, or the one sctp_add_backlog() takes
if the socket is owned by userspace, keeps it around until the chunk has
been processed.
An authenticated ASCONF DEL-IP can remove it in the meantime.
sctp_assoc_rm_peer() takes the transport out of the association and calls
sctp_transport_free(), which tags it dead and drops the reference the
association held. There is a window on both paths: the packet can sit on
the socket backlog, and on the direct path the lookup completes before
bh_lock_sock().
The DATA chunk in that packet puts the removed transport back into
asoc->peer.last_data_from. Once the packet is done that reference goes
away and the transport is freed by RCU, so the next delayed SACK carries
the pointer into the SACK chunk and sctp_outq_select_transport() reads the
freed transport's state.
Drop the chunk in sctp_inq_push(), next to the existing rcvr->dead check.
Both paths reach it with the association's socket lock held. The peer
retransmits it.
📍 영향받는 시스템
SCTP 프로토콜이 활성화된 Linux 커널 버전
⚔️ 공격 벡터
인증된 사용자가 ASCONF DEL-IP 메시지를 전송하여 전송 계층을 제거함으로써 메모리 참조 오류 유도
🛡️ 대응 방법
SCTP 관련 보안 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인합니다.