🇰🇷 한글 설명
리눅스 커널의 UDP 프로토콜 구현에서 close() 함수와 udp_abort() 함수 간의 레이스 컨디션(경쟁 상태) 취약점이 발견되었습니다. udp_abort()가 소켓 잠금을 해제한 후 파괴적인 작업을 수행하는 과정에서 충돌이 발생하여 커널 패닉을 유발할 수 있습니다.
💡 쉬운 설명
네트워크 연결을 끊는 두 가지 작업이 동시에 일어날 때, 시스템이 혼란을 겪어 갑자기 멈추거나 꺼질 수 있는 문제입니다. 이는 컴퓨터의 핵심인 커널이 예상치 못한 오류로 인해 중단되는 현상을 일으킵니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
udp: fix race between close() and udp_abort()
Kaustubh reported and diagnosed a panic in udp_lib_lookup().
The root cause is udp_abort() racing with close(). Both
racing functions acquire the socket lock, but udp{v6}_destroy_sock()
release it before performing destructive actions.
We can't easily extend the socket lock scope to avoid the race,
instead use the SOCK_DEAD flag to prevent udp_abort from doing
any action when the critical race happens.
Diagnosed-and-tested-by: Kaustubh Pandey <
[email protected]>
📍 영향받는 시스템
UDP 프로토콜을 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
특정 네트워크 상황에서 소켓 종료와 중단 요청을 동시에 유도하여 커널 패닉 유발
🛡️ 대응 방법
해당 취약점이 수정된 최신 리눅스 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 보안 업데이트 버전인지 확인