🇰🇷 한글 설명
리눅스 커널의 BPF rhtab 요소 재사용 과정에서 특수 필드를 부적절하게 취소하여 발생하는 취약점입니다. NMI 컨텍스트에서 복잡한 필드나 kptr를 해제할 때 안전하지 않은 동작이 발생할 수 있어, bpf_obj_cancel_fields()를 사용하도록 수정되었습니다.
💡 쉬운 설명
컴퓨터의 핵심 운영체제인 리눅스에서 특정 데이터를 정리하는 과정 중 오류가 발생할 수 있는 문제입니다. 이 오류는 시스템이 갑작스러운 상황에서 데이터를 처리할 때 충돌을 일으킬 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bpf: Cancel special fields when recycling rhtab elements
rhtab_map_update_existing() and rhtab_delete_elem() call
bpf_obj_free_fields() when replacing or deleting a value. These map
operations can run from BPF programs in NMI context, where releasing a
referenced kptr or another complex field is not generally safe.
Array and hash maps avoid that problem by cancelling only the asynchronous
fields which can be stopped safely in the caller context. Other ownership
state remains attached to the allocation until its memory allocator
destructor performs the final cleanup.
Use bpf_obj_cancel_fields() for the corresponding rhtab paths as well. This
cancels timers, workqueues, and task work while allowing rhtab_mem_dtor() to
release referenced kptrs when the allocation is eventually destroyed.
[ kkd: Rebased, used direct helper calls, and rewrote the commit log ]
📍 영향받는 시스템
Linux kernel (BPF rhtab 관련 기능 사용 시스템)
⚔️ 공격 벡터
NMI(Non-Maskable Interrupt) 컨텍스트에서 실행되는 BPF 프로그램을 통한 메모리 관리 오류 유도
🛡️ 대응 방법
해당 취약점이 해결된 최신 리눅스 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 패치된 버전인지 배포판 보안 공지를 통해 대조