🔍 CVE-2026-98038

0.0
CVSS Score
UNKNOWN
2026-09-25
2026-10-21 13:21
✅ 완료

🇰🇷 한글 설명

Linux 커널의 BPF 구현에서 RCU로 보호된 kptr를 빌려올 때 refcount_acquire의 반환 값을 검증기(verifier)가 잘못 처리하는 취약점입니다. 그래프 노드가 없는 참조 카운트 대상 객체의 경우, 실제로는 참조를 획득하지 못했음에도 검증기가 이를 소유권이 있는 참조로 오인하여 NULL 체크를 누락하게 만듭니다. 이로 인해 RCU 임계 구역 내에서 객체가 해제될 경우 잘못된 메모리 접근이 발생할 수 있습니다.

💡 쉬운 설명

리눅스 커널의 특정 기능을 사용할 때, 시스템이 메모리 사용 권한을 제대로 확인하지 못해 발생하는 오류입니다. 이 오류를 이용하면 프로그램이 이미 사라진 메모리 영역에 접근하려고 시도하여 시스템 오류를 일으킬 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: bpf: Keep refcount_acquire nullable for borrowed RCU kptrs bpf_refcount_acquire() is fallible for a borrowed reference because the object may have reached a zero refcount. The verifier therefore keeps KF_RET_NULL on the return value unless the argument is an owning reference. An RCU-protected load of a local kptr is marked MEM_ALLOC, but it only receives NON_OWN_REF when the pointee contains a graph node. A refcounted object without a graph node consequently looks like an owning reference even though the loaded register has no acquired reference state. If the program drops the last real reference while remaining in the RCU critical section, refcount_inc_not_zero() returns NULL while the verifier treats the result as non-NULL. Only classify the argument as owning when it is backed by a verifier-tracked reference. This retains the non-NULL return for pointers from bpf_obj_new(), bpf_kptr_xchg(), or an earlier successful acquisition, while requiring a NULL check for borrowed RCU kptrs. [ kkd: Rewrote commit log ]

📍 영향받는 시스템

Linux Kernel (BPF 관련 기능이 활성화된 버전)

⚔️ 공격 벡터

BPF 프로그램을 통해 RCU 보호를 받는 객체의 참조 카운트를 조작하여 잘못된 메모리 주소에 접근하는 방식

🛡️ 대응 방법

해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트하십시오.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 패치된 최신 릴리스 버전인지 확인하십시오.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel