CVE-2026-99053 in Linux
요약
\~에 의해 VulDB • 2026. 10. 24.
리눅스 커널에서 다음 취약점이 해결되었습니다:
tipc: 링크 이름으로 찾은 노드에 대한 참조를 유지하십시오
tipc_node_find_by_name() 함수는 RCU 읽기 잠금을 해제한 후 참조를 획득하지 않고 노드를 반환합니다. 그 결과 LINK_SET, LINK_GET 및 LINK_RESET_STATS 핸들러가 해당 노드를 잠그고 접근할 때 다운된 피어의 타이머 기반 정리 작업과 경쟁 상태(race condition)가 발생합니다. 제네릭 netlink 직렬화는 노드 타이머를 제외시키지 않습니다.
다음 교차 실행(interleaving)은 해제된(freed) 노드를 사용하는 핸들러를 남길 수 있습니다:
CPU 0: RCU 하에서 노드를 찾고 노드 읽기 잠금을 해제함 CPU 1: tipc_node_timeout()이 링크를 지우고 다운된 노드를 언링크(unlink)함 CPU 1: 목록 및 타이머 참조를 해제하여 tipc_node_free()를 큐에 추가함 CPU 0: RCU 리드 사이드 임계 섹션을 벗어남 CPU 1: 우아한 기간(grace period)을 완료하고 노드를 해제(free)함 CPU 0: 낡은 포인터(stale pointer)를 통해 노드 잠금을 획득함
LINK_SET도 또한 노드 잠금을 해제한 후 tipc_bearer_xmit()로 대기 중인 패킷을 전달할 때 노드의 미디어 주소를 사용합니다.
v7.3-rc5에서 KASAN이 다음을 보고했습니다:
BUG: KASAN: slab-use-after-free in _raw_read_lock_bh addr ffff88807e06f008 주소에 대한 크기 4의 쓰기 작업, 태스크 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
태스크 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
태스크 92에 의해 해제됨: kfree mm/slub.c:6801 rcu_core kernel/rcu/tree.c:2919
마지막 관련 작업 생성: __call_rcu_common.constprop.0 kernel/rcu/tree.c:3181 tipc_node_timeout net/tipc/node.c:814
RCU를 벗어나기 전에 kref_get_unless_zero()를 사용하여 선택된 노드에 대한 참조를 획득하십시오. 만약 노드가 이미 해제되었다면 NULL을 반환합니다. 마지막 노드 접근( LINK_SET에서의 전송 포함) 후 모든 호출자 종료 시 해당 참조를 해제하십시오. 기존 링크 조회 순서와 잠금 방식을 유지하여 동시 링크 제거가 여전히 기존의 오류 경로(error paths)를 따르도록 하십시오.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.