🔍 CVE-2021-46999

9.8
CVSS Score
CRITICAL
2024-02-28
2026-08-04 10:16
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 SCTP 프로토콜 구현에서 발생하는 Use-After-Free 취약점입니다. 중복된 COOKIE-ECHO 청크를 처리하는 과정에서 새로운 연결(association) 정보가 할당되지만, 기존 연결의 데이터가 해제된 메모리 영역을 참조하여 시스템 패닉을 유발할 수 있습니다.

💡 쉬운 설명

컴퓨터가 이미 사용이 끝나서 지워버린 메모리 주소를 다시 사용하려고 시도할 때 발생하는 오류입니다. 이로 인해 시스템이 갑자기 멈추거나 강제로 재부팅될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: sctp: do asoc update earlier in sctp_sf_do_dupcook_a There's a panic that occurs in a few of envs, the call trace is as below: [] general protection fault, ... 0x29acd70f1000a: 0000 [#1] SMP PTI [] RIP: 0010:sctp_ulpevent_notify_peer_addr_change+0x4b/0x1fa [sctp] [] sctp_assoc_control_transport+0x1b9/0x210 [sctp] [] sctp_do_8_2_transport_strike.isra.16+0x15c/0x220 [sctp] [] sctp_cmd_interpreter.isra.21+0x1231/0x1a10 [sctp] [] sctp_do_sm+0xc3/0x2a0 [sctp] [] sctp_generate_timeout_event+0x81/0xf0 [sctp] This is caused by a transport use-after-free issue. When processing a duplicate COOKIE-ECHO chunk in sctp_sf_do_dupcook_a(), both COOKIE-ACK and SHUTDOWN chunks are allocated with the transort from the new asoc. However, later in the sideeffect machine, the old asoc is used to send them out and old asoc's shutdown_last_sent_to is set to the transport that SHUTDOWN chunk attached to in sctp_cmd_setup_t2(), which actually belongs to the new asoc. After the new_asoc is freed and the old asoc T2 timeout, the old asoc's shutdown_last_sent_to that is already freed would be accessed in sctp_sf_t2_timer_expire(). Thanks Alexander and Jere for helping dig into this issue. To fix it, this patch is to do the asoc update first, then allocate the COOKIE-ACK and SHUTDOWN chunks with the 'updated' old asoc. This would make more sense, as a chunk from an asoc shouldn't be sent out with another asoc. We had fixed quite a few issues caused by this.

📍 영향받는 시스템

SCTP 프로토콜이 활성화된 특정 버전의 Linux Kernel

⚔️ 공격 벡터

조작된 SCTP COOKIE-ECHO 패킷을 전송하여 커널 메모리 오류 유도

🛡️ 대응 방법

SCTP 관련 커널 패치를 적용하거나 최신 보안 업데이트가 반영된 커널로 업데이트

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 보안 패치가 적용된 최신 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel