CVE-2026-98231 in Linux정보

요약

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

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

xfrm: 장치 상태 플러시와 함께 상태 GC를 직렬화함

xfrm_dev_state_flush() 함수의 지연된-장치(pass) 처리는 xfrm_state_dev_gc_lock 잠금 하에서 상태를 찾지만, 드라이버 콜백이 슬립할 수 있으므로 xfrm_dev_state_free() 호출 전에 해당 잠금을 해제합니다. 장치 GC 목록은 xfrm_state 참조를 보유하지 않으므로 상태 GC 워커가 동일한 상태를 동시에 파괴할 수 있습니다.

경쟁 조건(race condition)은 다음과 같이 진행될 수 있습니다:

CPU 0 CPU 1 장치 GC 목록에서 x 찾기 xfrm_state_dev_gc_lock 해제 x->xso.dev 읽기 xfrm_state_gc_destroy(x) 호출 xfrm_dev_state_free(x) 호출 xfrm_state_free(x) 호출 계속하여 xfrm_dev_state_free(x) 실행

두 경로 모두 드라이버 콜백을 호출하고 장치 참조를 해제할 수 있습니다. CPU 0은 CPU 1이 해당 객체를 해지한 후에도 xfrm_state에 접근할 수 있습니다.

KASAN에서 다음 오류가 보고되었습니다:

BUG: KASAN: slab-use-after-free in xfrm_dev_state_free+0x24c/0x2a0 addr ffff88810bbaa960 주소에서 크기 8 바이트 읽기, 작업자 poc/102에 의해 수행됨

Call Trace: xfrm_dev_state_free+0x24c/0x2a0 xfrm_dev_state_flush+0x353/0x400 xfrm_dev_event+0x26d/0x3a0 notifier_call_chain+0xc0/0x280 __dev_notify_flags+0x169/0x250 netif_change_flags+0xe7/0x160 dev_change_flags+0x96/0x220 devinet_ioctl+0x7f4/0x1880

작업자 87에 의해 할당됨: xfrm_state_alloc+0x1e/0x5c0 xfrm_add_sa+0xe7f/0x5820 xfrm_user_rcv_msg+0x4f3/0x940

작업자 57에 의해 해지됨: kmem_cache_free+0xcb/0x3d0 xfrm_state_gc_task+0x4a8/0x650 process_one_work+0x63a/0x1070

뮤텍스를 사용하여 지연된-장치 처리와 함께 xfrm_state 해지를 직렬화합니다. xfrm_state_dev_gc_lock은 목록 작업에 국한하고 기존 콜백 및 장치 참조 해제 순서를 유지합니다.

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

출처

Do you know our Splunk app?

Download it now for free!