CVE-2026-98537 in Linux정보

요약

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

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

workqueue: flush 의존성 확인 중 NULL current_pwq 역참조 수정

check_flush_dependency()는 호출자가 작업 큐(wq) 워커인지 여부를 결정하기 위해 current_wq_worker()를 사용하고, 그런 다음 worker->current_pwq를 역참조하여 현재 작업 큐가 WQ_MEM_RECLAIM인지 테스트합니다.

current_wq_worker()는 %current에 PF_WQ_WORKER 플래그가 설정되어 있음을 의미할 뿐입니다. kworker는 작업 항목을 실행 중이 아닌 상태에서도 check_flush_dependency()에 도달할 수 있습니다. 이러한 경로 중 하나는 풀 관리자(pool manager)로서 동작하는 worker_thread()이며, 여기서 create_worker()는 GFP_KERNEL 할당을 수행하고 해당 할당 경로는 OOM(Out-Of-Memory) 알림자를 호출합니다. 그런 상태에서 worker->current_pwq은 NULL입니다. 이는 current_pwq이 process_one_work()에 의해서만 설정되고 작업 함수가 반환된 후 다시 해제되기 때문입니다.

[ 416.760634][ T375] 콜 트레이스:
[ 416.760638][ T375] check_flush_dependency+0x80/0x120 (P)
[ 416.760648][ T375] __flush_work+0x98/0x224
[ 416.760657][ T375] flush_work+0x30/0x44
[ 416.760665][ T375] ...
[ 416.760710][ T375] blocking_notifier_call_chain+0x58/0xa0
[ 416.760719][ T375] out_of_memory+0xb4/0x458
[ 416.760730][ T375] __alloc_pages_may_oom+0x11c/0x1a8
[ 416.760739][ T375] __alloc_pages_slowpath+0x314/0x46c
[ 416.760746][ T375] __alloc_frozen_pages_noprof+0x110/0x1a4
[ 416.760753][ T375] new_slab+0x12c/0x484
[ 416.760759][ T375] ___slab_alloc+0x7a8/0xc7c
[ 416.760765][ T375] __slab_alloc+0x74/0xd8
[ 416.760772][ T375] __kmalloc_cache_node_noprof+0x2ac/0x304
[ 416.760779][ T375] alloc_worker+0x28/0x60
[ 416.760785][ T375] create_worker+0x4c/0x20c
[ 416.760790][ T375] worker_thread+0xe8/0x2b8
[ 416.760796][ T375] kthread+0x1a8/0x200
[ 416.760805][ T375] ret_from_fork+0x10/0x20

WQ_MEM_RECLAIM 워커 경고는 worker->current_pwq로 보호됩니다. kworker가 현재 작업 항목을 실행 중이 아니라면, 해당 경고를 진단할 수 있는 현재 작업 큐(current workqueue)가 없습니다. PF_MEMALLOC 경고는 변경되지 않은 상태로 유지되므로, 명시적인 회수 컨텍스트에서 !WQ_MEM_RECLAIM 대상을 플러시하는 경우에도 여전히 보고됩니다.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

책임이 있는

Linux

예약하다

2026. 09. 25.

모더레이션

수락

항목

VDB-421807

EPSS

0.00000

출처

Do you know our Splunk app?

Download it now for free!