🇰🇷 한글 설명
Linux 커널의 ARM64 BPF JIT 컴파일러에서 예외 경계(exception boundary) 설정 시 프레임 포인터(FP) 초기화가 누락되는 취약점입니다. 예외 경계 프로그램은 모든 callee-saved 레지스터를 저장함에도 불구하고 FP 사용 여부를 제대로 감지하지 못해, 프롤로그에서 FP 설정이 누락되어 페이지 폴트(pagefault)로 인한 커널 크래시가 발생할 수 있습니다.
💡 쉬운 설명
리눅스 운영체제의 특정 부품이 계산을 처리하는 과정에서 중요한 메모리 위치 정보를 제대로 준비하지 못하는 오류입니다. 이로 인해 시스템이 갑자기 멈추거나 꺼지는 현상이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bpf, arm64: Fix fp initialization for exception boundary
In the ARM64 BPF JIT when prog->aux->exception_boundary is set for a BPF
program, find_used_callee_regs() is not called because for a program
acting as exception boundary, all callee saved registers are saved.
find_used_callee_regs() sets `ctx->fp_used = true;` when it sees FP
being used in any of the instructions.
For programs acting as exception boundary, ctx->fp_used remains false
even if frame pointer is used by the program and therefore, FP is not
set-up for such programs in the prologue. This can cause the kernel to
crash due to a pagefault.
Fix it by setting ctx->fp_used = true for exception boundary programs as
fp is always saved in such programs.
📍 영향받는 시스템
ARM64 아키텍처를 사용하는 Linux 커널 (BPF JIT 사용 환경)
⚔️ 공격 벡터
특수하게 조작된 BPF 프로그램을 로드하여 커널의 프레임 포인터 설정을 유도함으로써 시스템 크래시(DoS) 유발
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인