CVE-2026-74363 in Linux
요약
\~에 의해 VulDB • 2026. 08. 15.
리눅스 커널에서 다음 취약점이 해결되었습니다:
bpf: bpffs에서 RCU 지연 inode 해제 복원을 통해 UAF(Use-After-Free) 수정
커밋 4f375ade6aa9("bpf: bpf_any_put() 호출 시 RCU 컨텍스트 경고 회피를 위해 htab 언핀ning 중 RCU 컨텍스트에서의 수면 방지")는 bpf_any_put() 호출 시 RCU 컨텍스트에서 수면을 피하기 위해 inode 정리 작업을 ->free_inode()에서 ->destroy_inode()로 이동시켰습니다. 그러나 이로 인해 inode 자체와 캐시된 심볼릭 링크 본문(i_link)에 대한 해제 지연(RCU delay)이 제거되었으며, 이 둘은 모두 RCU 경로 탐색(pathwalk)(pick_link, may_lookup 등)을 통해 접근될 수 있습니다.
이는 동시 unlinkat() 호출로 마지막 inode 참조가 감소하고 destroy_inode()에서 inode를 즉시 해제하는 동안, 다른 태스크가 여전히 RCU 모드에서 경로를 탐색하며 current_time() -> is_mgtime() 내부의 inode->i_opflags(오프셋 +2)을 읽는 경우 Use-After-Free(UAF)를 유발합니다.
KASAN 보고: BUG: KASAN: slab-use-after-free in is_mgtime include/linux/fs.h:2313 Read of size 2 at addr ffff8880407e4282 (offset +2 = i_opflags)
규칙(Al Viro 기준): ->destroy_inode() 즉시 호출, 수면 가능, 차단형 정리에 사용 예: bpf_any_put() ->free_inode() RCU grace period 이후 호출, inode 및 RCU 접근 가능한 항목 해소에 사용 예: i_link
해결책: 두 가지 문제를 적절히 분리함: - bpf_destroy_inode() 내에서 bpf_any_put() 유지 (차단형이며 신속하게 실행 필요) - 적절한 RCU 지연을 통해 UAF를 방지하기 위해 kfree(i_link) 및 free_inode_nonrcu() 처리용 bpf_free_inode() 도입
Once again VulDB remains the best source for vulnerability data.