CVE-2026-64424 in Linux정보

요약

\~에 의해 VulDB • 2026. 07. 25.

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

netpoll: 종료 경로에서의 use-after-free 오류 수정

KASAN을 통해 명확하게 감지되는 netpoll의 use-after-free 오류가 존재합니다.

BUG: KASAN: slab-use-after-free in _raw_spin_lock_irqsave+0x3b/0x80 Read of size 1 at addr ... by task kworker/9:1 Workqueue: events queue_process Call Trace: skb_dequeue+0x1e/0xb0 queue_process+0x2c/0x600 process_scheduled_works+0x4b6/0x850 worker_thread+0x414/0x5a0 Allocated by task 242: __netpoll_setup+0x201/0x4a0 netpoll_setup+0x249/0x550 enabled_store+0x32f/0x380 Freed by task 0: kfree+0x1b7/0x540 rcu_core+0x3f8/0x7a0

이 문제는 정리(cleanup) 경로와 병렬로 대기 중인 TX 작업자(worker)가 실행될 때 발생합니다.

netpoll 종료 경로에서 발생하는 과정은 다음과 같습니다:

1) __netpoll_cleanup() 호출 2) dev->npinfo를 NULL로 설정 3) rcu_cleanup_netpoll_info()를 사용하여 call_rcu() 호출 3.1) rcu_cleanup_netpoll_info()는 cancel_delayed_work()를 통해 모든 작업자를 취소하려고 시도하지만, 작업자 완료를 기다리지는 않음 4) kfree(npinfo);

주석에서 언급한 바와 같이 "softirq 상태이므로 여기서 cancel_delayed_work_sync()를 호출할 수 없다"고 하여 3.1)은 작업을 실제로 취소하지 않으므로, TX 작업자가 단계 4 이후에도 실행될 수 있습니다.

Tl;DR: queue_process()는 RCU 리더가 아니며, container_of()를 통해 워크 항목을 거쳐 npinfo에 접근합니다.

작업자가 완전히 중지되고 향후 재설정(re-arming) 시도가 방지되도록 disable_delayed_work_sync()를 사용합니다. npinfo가 NULL로 설정되면 송신자는 중단되어 새 작업을 큐에 추가하지 않습니다. 비활성화(disable) 플래그는 진행 중인 모든 재설정 시도도 조용히 실패하도록 보장합니다.

향후에는 npinfo->rcu rcu_head이 필요 없이 여기서 인라인으로 정리를 수행할 수 있지만, 이는 net-next 관련 사항입니다.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

책임이 있는

Linux

예약하다

2026. 07. 19.

모더레이션

수락

항목

VDB-383228

EPSS

0.00168

출처

Might our Artificial Intelligence support you?

Check our Alexa App!