🇰🇷 한글 설명
Linux 커널의 TIPC 프로토콜에서 CONN_ACK 메시지의 확인 응답(ACK) 수가 실제 전송된 메시지 수보다 클 경우, 부호 없는 16비트 정수 언더플로우가 발생합니다. 이로 인해 연결 제어 상태가 영구적으로 오류 상태에 빠져 데이터 전송이 불가능해지는 서비스 거부(DoS) 취약점이 존재합니다.
💡 쉬운 설명
공격자가 가짜 확인 응답을 보내 시스템의 계산 오류를 유도함으로써 통신 연결을 마비시킬 수 있습니다. 이로 인해 해당 네트워크 연결을 통한 데이터 전송이 완전히 중단됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tipc: prevent snt_unacked underflow on CONN_ACK
tipc_sk_conn_proto_rcv() subtracts the peer-supplied connection ack count
from the unsigned 16-bit send counter snt_unacked without checking that it
does not exceed the number of messages actually outstanding:
tsk->snt_unacked -= msg_conn_ack(hdr);
msg_conn_ack() is read straight from a received CONN_MANAGER/CONN_ACK
message. If the ack count is larger than snt_unacked, the subtraction
wraps to a near-maximum value, leaving tsk_conn_cong() permanently true
and starving the connection of further transmits.
Validate the ACK count at the start of the CONN_ACK block and drop the
message if it acknowledges more messages than are outstanding. A peer (or,
for a local connection, the connected peer socket) can otherwise wedge a
TIPC connection's send side by sending an oversized connection ack.
📍 영향받는 시스템
TIPC 프로토콜을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
조작된 CONN_ACK 메시지를 전송하여 snt_unacked 변수의 언더플로우 유도
🛡️ 대응 방법
TIPC 관련 보안 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 보안 패치가 적용된 버전인지 확인합니다.