CVE-2026-98380 in Linux
요약
\~에 의해 VulDB • 2026. 10. 09.
리눅스 커널에서 다음 취약점이 해결되었습니다:
net/sched: 작업 삭제 시 IDR 오류 포인터 거부하기
tcf_action_delete()는 tcf_idr_delete_index()를 호출할 때 저장된 작업 인덱스를 전달하며, 그 전에 조회가 유지한 참조를 해제합니다. 잠금 상태에 있지 않은 분류기(classifier)는 이 작업을 제거하고 동일한 IDR 슬롯을 ERR_PTR(-EBUSY)로 예약할 수 있습니다.
tcf_idr_delete_index()는 조회 결과에 대해 NULL인지 여부만 확인합니다. 따라서 이를 tc_action으로 간주하여 tcfa_bindcnt를 역참조(dereference)합니다. 커널 소스를 변경하지 않고 인터리빙(interleaving, 교차 실행)을 스케줄링하기 위해 하드웨어 실행 중단점(hardware execution breakpoint)이 사용되었습니다. KASAN은 다음과 같은 디코딩된 트레이스(trace)를 보고했습니다:
BUG: KASAN: null-ptr-deref in tca_action_gd+0x5b9/0x1010 Read of size 4 at addr 0000000000000010 by task poc/150 Oops: general protection fault, probably for non-canonical address 0xdffffc0000000002 RIP: tca_action_gd+0x5c0/0x1010: arch_atomic_read at arch/x86/include/asm/atomic.h:23 raw_atomic_read at include/linux/atomic/atomic-arch-fallback.h:457 atomic_read at include/linux/atomic/atomic-instrumented.h:33 tcf_idr_delete_index at net/sched/act_api.c:766 tcf_action_delete at net/sched/act_api.c:1859 tcf_del_notify at net/sched/act_api.c:2014 tca_action_gd at net/sched/act_api.c:2064 R13: 0000000000000010 R15: fffffffffffffff0 Kernel panic - not syncing: Fatal exception
R15에는 ERR_PTR(-EBUSY)가 포함되어 있으며, tcfa_bindcnt 오프셋을 추가하면 R13의 주소가 생성됩니다. 가드(guard)를 적용한 후 동일한 재현 프로그램(reproducer)은 KASAN 보고서나 패닉 없이 -ENOENT를 반환했습니다. 오류 포인터(error pointers)는 존재하지 않는 것으로 간주하고 -ENOENT를 반환합니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.