🇰🇷 한글 설명
Linux 커널의 BPF 구성 요소에서 스택 슬롯 정리 과정 중 포인터 스필(pointer spill) 메타데이터가 손실되는 취약점이 발견되었습니다. 이로 인해 포인터 데이터가 스칼라 데이터로 오인되어 보안 검사를 우회할 수 있는 위험이 있습니다.
💡 쉬운 설명
컴퓨터 메모리를 정리하는 과정에서 중요한 정보(포인터)를 실수로 지워버리는 버그가 있었습니다. 이 버그를 이용하면 공격자가 보안 검사를 피해 시스템의 중요한 데이터에 접근할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bpf: Preserve pointer spill metadata during half-slot cleanup
__clean_func_state() cleans dead stack slots in 4-byte halves. When the
high half of a STACK_SPILL slot is dead and the low half remains live,
cleanup converts the live low half to STACK_MISC or STACK_ZERO and clears
the saved spilled_ptr metadata.
That conversion is safe only for scalar spills. For a pointer spill, this
metadata clear lets a later 32-bit fill from the still-live half avoid the
normal non-scalar register-fill check and be treated as an ordinary scalar
stack read.
Leave non-scalar spill slots intact in this half-live shape. This is
conservative for pruning and preserves the existing
check_stack_read_fixed_off() rejection path for partial fills from pointer
spills.
📍 영향받는 시스템
Linux Kernel (BPF 기능이 활성화된 버전)
⚔️ 공격 벡터
조작된 BPF 프로그램을 통해 메모리 스택의 불완전한 정리를 유도하여 보안 검사를 우회하는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.