CVE-2026-98861 in Linux정보

요약

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

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

fprobe: guard(rcu_sched_notrace) 사용 및 rcu_is_watching() 확인

unregister_fprobe() 및 unregister_fprobe_async()(BPF kprobe-multi에 의해 사용됨)는 fprobe를 해제하기 전에 비행 중인(flighting) fprobe 핸들러가 완료될 때까지 기다리기 위해 표준 RCU grace periods(synchronize_rcu() 및 call_rcu())에 의존합니다.

그러나 RCU가 감시 중이지 않을 때(예: idle 루프 또는 nohz_full 확장 정지 상태), 표준 RCU는 preemption이 비활성화된 섹션을 추적하지 않습니다. 결과적으로 synchronize_rcu()는 이러한 실행을 기다리지 않으며, 이로 인해 unregister 직후 fprobe가 즉시 해제되면 use-after-free로 이어질 수 있습니다. !rcu_is_watching()일 때 핸들러가 조기에 종료되도록 보장합니다.

또한, 기존에 fprobe_fgraph_entry() 및 fprobe_ftrace_entry()는 guard(rcu)()와 rcu_read_lock()을 사용했으며, 이는 CONFIG_PROVE_LOCKING 설정 하에서 모든 발생 시점(lockdep hit)마다 lockdep를 호출했습니다. 이로 인해 오버헤드가 증가하며, probe된 함수가 lockdep과 상호작용할 경우 lockdep 재귀(recursion) 문제가 발생할 수 있습니다.

rhltable_lookup() 및 rhl_for_each_entry_rcu()는 rcu_dereference_all_check()(rcu_read_lock_any_held()를 확인함)을 사용하므로, rcu_is_watching()이 참인 한 rcu_read_lock_sched_notrace()를 통해 preemption 비활성화를 유지하는 것은 완전히 유효하며 충분합니다.

fprobe_ftrace_entry(), fprobe_fgraph_entry(), 및 fprobe_return() 전반에 걸쳐 guard(rcu_sched_notrace)()를 정의하고 사용합니다. 이는 빠른 경로(fast-path)의 rcu_read_lock()과 lockdep 오버헤드를 제거하면서도 안전한 grace period 동기화를 보장합니다.

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

책임이 있는

Linux

예약하다

2026. 09. 25.

모더레이션

수락

항목

VDB-421864

EPSS

0.00167

활동

낮음

출처

Want to know what is going to be exploited?

We predict KEV entries!