🇰🇷 한글 설명
리눅스 커널의 BPF JIT 상수 블라인딩 과정에서 점프 오프셋 계산 시 정수 오버플로가 발생할 수 있는 취약점입니다. 이로 인해 점프 명령어가 프로그램 범위를 벗어나 커널 크래시를 유발할 수 있으며, 특히 bpf_jit_harden=2 설정 시 문제가 됩니다.
💡 쉬운 설명
컴퓨터 프로그램이 특정 위치로 이동할 때 계산 오류가 발생하여 엉뚱한 곳으로 점프하게 만드는 버그입니다. 이 오류로 인해 시스템이 갑자기 멈추거나 꺼질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bpf: Fix overflow of jump offset in constant blinding
bpf_jit_blind_insn() rewrites 'if rX op imm goto off' into:
AX = imm ^ rnd
AX ^= rnd
if rX op AX goto off
and subtracts 2 from off when the jump is backward. off is s16, so
-32767 and -32768 wrap and the jump goes 32767 insns forward, past the
end of the prog. The jump is inside the patch, hence bpf_adj_branches()
doesn't check it. The kernel crashes when such prog runs with
bpf_jit_harden=2.
Return -ERANGE in such case. bpf_jit_blind_constants() fails the same
way when blinding of other insns moves a jump out of range.
📍 영향받는 시스템
bpf_jit_harden=2 설정이 활성화된 리눅스 커널 버전
⚔️ 공격 벡터
특수하게 조작된 BPF 프로그램을 로드하여 커널의 점프 오프셋 계산 오류를 유도함
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.