🔍 CVE-2026-72322

9.8
CVSS Score
CRITICAL
2026-08-15
2026-10-16 19:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 IPv6 MLD 지연 작업 처리 과정에서 장치 해제와 MLD 쿼리 처리 간의 레이스 컨디션으로 인해 Use-After-Free 취약점이 발생합니다. 장치가 파괴되는 동안 참조 횟수가 0이 된 상태에서 지연된 작업이 실행되어 해제된 메모리에 접근함으로써 커널 패닉을 유발할 수 있습니다.

💡 쉬운 설명

컴퓨터 부품을 제거하는 도중에 갑자기 해당 부품을 사용하려는 명령이 내려져 시스템이 충돌하는 문제입니다. 이로 인해 운영체제가 갑자기 멈추거나 재부팅될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ipv6: mcast: Fix potential UAF in MLD delayed work A race condition exists between device teardown and incoming MLD query processing, leading to a Use-After-Free in the MLD delayed work. During device destruction, the primary reference to inet6_dev is dropped, which can drop its refcount to 0. The actual freeing of inet6_dev memory is deferred via RCU. Concurrently, the packet receive path runs under RCU read lock and obtains the inet6_dev pointer. Because the memory is RCU-protected, CPU-0 can safely dereference inet6_dev even if its refcount has hit 0. However, if CPU-0 calls igmp6_event_query() and schedules delayed work, it attempts to acquire a reference using in6_dev_hold(). This increments the refcount from 0 to 1, triggering a "refcount_t: addition on 0" warning. Since the inet6_dev memory is still scheduled to be freed after the RCU grace period, the device is freed while the work is still scheduled. When the work runs, it accesses the freed memory, causing a kernel panic. Fix this by using refcount_inc_not_zero() (via a new helper in6_dev_hold_safe()) to prevent acquiring a reference if the device is already being destroyed. If the refcount is 0, we do not schedule the work.

📍 영향받는 시스템

Linux Kernel (IPv6 MLD 관련 모듈 사용 시스템)

⚔️ 공격 벡터

네트워크를 통한 MLD 쿼리 패킷 전송 및 장치 해제 시점의 타이밍 공격

🛡️ 대응 방법

커널 패치를 적용하여 in6_dev_hold_safe()를 통해 참조 횟수가 0인 경우 작업을 예약하지 않도록 수정해야 합니다.

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인합니다.

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