CVE-2026-98558 in Linux정보

요약

\~에 의해 VulDB • 2026. 10. 18.

리눅스 커널에서 다음 취약점이 해결되었습니다:

net: dev_cpu_dead()에서 skb_defer_nodes 플러시하기

CPU가 오프라인으로 전환될 때, dev_cpu_dead()는 해당 CPU의 softnet 큐(completion_queue, output_queue, poll_list, process_queue 및 input_pkt_queue)를 비우지만 net_hotdata.skb_defer_nodes는 그대로 둡니다.

만약 oldcpu가 skb_defer_nodes 목록에 대기 중인 skbs(예: sysctl_skb_defer_max >> 1 IPI 임계값 이하 또는 IPI와 CPU teardown 간 레이스 컨디션 발생 시)를 보유하고 있는 상태에서 오프라인으로 전환되면, 해당 skbs는 oldcpu가 다시 온라인이 될 때까지 고립된 상태로 남습니다. 이러한 skbs 중 page_pool fragments를 보유하는 경우, oldcpu가 오프라인 상태일 때 netdev 또는 드라이버가 제거(page_pool_destroy())될 때 inflight 페이지의 반환을 무한정 기다리며 page_pool_destroy()가 중단됩니다.

또한 kick_defer_list_purge()에서 smp_call_function_single_async() 호출이 대상 CPU가 오프라인으로 전환되어 실패할 경우, defer_ipi_scheduled를 0으로 재설정하여 CPU가 다시 온라인이 되었을 때 향후 IPI 킥(blocking)이 차단되지 않도록 합니다.

마지막으로 oldcpu가 해당 NUMA 노드의 마지막 온라인 CPU인 경우, 그 노드의 슬롯을 모든 CPU에서 비워야 합니다. 이는 대기 중인 skbs가 유휴 원격 CPU에 고립되거나(또는 노드 자체가 이후 오프라인으로 전환될 때) 잔류하는 것을 방지하기 위함입니다.

마지막으로 skb_attempt_defer_free()에서는 cpu_online(cpu)를 다시 확인하고, llist_add() 호출 후 콜러가 CPU 마이그레이션을 수행했는지 여부를 검사하여, 만약 그렇다면 노드 목록을 플러시합니다. 이는 CPU/노드 teardown에 대한 preemption TOCTOU(시간-체크 이후 사용) 레이스 컨디션을 해결하기 위함입니다.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

책임이 있는

Linux

예약하다

2026. 09. 25.

모더레이션

수락

항목

VDB-422053

EPSS

0.00189

출처

Might our Artificial Intelligence support you?

Check our Alexa App!