🔍 CVE-2026-99053

0.0
CVSS Score
UNKNOWN
2026-10-23
2026-10-23 13:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 TIPC 모듈에서 tipc_node_find_by_name()이 RCU 읽기 잠금을 해제한 뒤 노드에 대한 참조를 획득하지 않아, LINK_SET, LINK_GET, LINK_RESET_STATS 핸들러가 타이머에 의해 해제된 노드에 접근할 수 있는 use-after-free 취약점입니다. 수정은 RCU 임계 구역을 벗어나기 전에 kref_get_unless_zero()로 참조를 확보하고 모든 종료 경로에서 해제하는 것입니다.

💡 쉬운 설명

리눅스 커널의 클러스터 통신 기능에서 이미 삭제된 메모리를 다시 사용하는 버그입니다. 특정 타이밍에 관리 요청을 처리하면 시스템이 비정상 종료되거나 메모리 내용이 노출될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: tipc: hold a reference to nodes found by link name tipc_node_find_by_name() returns a node after dropping its RCU read lock without taking a reference. The LINK_SET, LINK_GET and LINK_RESET_STATS handlers then lock and access the node, racing with timer-driven cleanup of a down peer. Generic netlink serialization does not exclude the node timer. The following interleaving can leave a handler using a freed node: CPU 0: find the node under RCU and release the node read lock CPU 1: tipc_node_timeout() clears the links and unlinks the down node CPU 1: drop the list and timer references, queuing tipc_node_free() CPU 0: leave the RCU read-side critical section CPU 1: complete the grace period and free the node CPU 0: acquire the node lock through the stale pointer LINK_SET also uses the node's media address after releasing the node lock, when passing queued packets to tipc_bearer_xmit(). KASAN on v7.3-rc5 reported: BUG: KASAN: slab-use-after-free in _raw_read_lock_bh Write of size 4 at addr ffff88807e06f008 by task poc/92 Call Trace: _raw_read_lock_bh kernel/locking/spinlock.c:287 tipc_nl_node_set_link net/tipc/node.c:2475 genl_family_rcv_msg_doit net/netlink/genetlink.c:1114 genl_rcv_msg net/netlink/genetlink.c:1209 netlink_rcv_skb net/netlink/af_netlink.c:2575 Allocated by task 0: tipc_node_create net/tipc/node.c:539 tipc_node_check_dest net/tipc/node.c:1196 tipc_disc_rcv net/tipc/discover.c:252 Freed by task 92: kfree mm/slub.c:6801 rcu_core kernel/rcu/tree.c:2919 Last potentially related work creation: __call_rcu_common.constprop.0 kernel/rcu/tree.c:3181 tipc_node_timeout net/tipc/node.c:814 Acquire a reference to the selected node with kref_get_unless_zero() before leaving RCU, returning NULL if the node has already been released. Release that reference on every caller exit after the last node access, including transmission in LINK_SET. Keep the existing link lookup order and locking so concurrent link removal still takes the existing error paths.

📍 영향받는 시스템

TIPC 프로토콜을 사용하는 Linux 커널 (수정 이전 버전, KASAN 보고는 v7.3-rc5 기준)

⚔️ 공격 벡터

로컬 사용자가 TIPC 넷링크 관리 요청을 반복 전송하여 노드 타이머 정리와 경쟁 상태를 유발함으로써 해제된 메모리 접근을 일으킴

🛡️ 대응 방법

커널을 해당 CVE 수정이 포함된 최신 안정 버전으로 업데이트하고, 배포판 보안 업데이트를 적용하며, 불필요한 경우 tipc 모듈을 비활성화합니다.

🔧 검증 코드

커널 버전이 수정된 릴리스 이상인지 확인하고, tipc 모듈이 로드되지 않았다면 이 취약점의 영향을 받지 않습니다.

Shell / Script
uname -r && (lsmod | grep -i tipc || echo 'tipc module not loaded')

💻 영향받는 소프트웨어

Linux Kernel