🇰🇷 한글 설명
Linux 커널 BPF 검증기에서 유효하지 않은 kfunc 호출을 건너뛰는 과정에서 backtrack_insn 함수가 잘못 동작하여 경고가 발생하는 문제입니다. 이를 해결하기 위해 해당 경우 ENOTSUPP를 반환하도록 역추적 로직을 보수적으로 변경했습니다.
💡 쉬운 설명
리눅스 커널 안의 BPF 검증 기능이 특정 상황에서 잘못된 경고를 띄우고 내부 처리가 꼬이는 문제입니다. 커널 업데이트로 이 처리를 안전하게 막아 문제를 해결합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bpf: Skip invalid kfunc call in backtrack_insn
The verifier skips invalid kfunc call in check_kfunc_call(), which
would be captured in fixup_kfunc_call() if such insn is not eliminated
by dead code elimination. However, this can lead to the following
warning in backtrack_insn(), also see [1]:
------------[ cut here ]------------
verifier backtracking bug
WARNING: CPU: 6 PID: 8646 at kernel/bpf/verifier.c:2756 backtrack_insn
kernel/bpf/verifier.c:2756
__mark_chain_precision kernel/bpf/verifier.c:3065
mark_chain_precision kernel/bpf/verifier.c:3165
adjust_reg_min_max_vals kernel/bpf/verifier.c:10715
check_alu_op kernel/bpf/verifier.c:10928
do_check kernel/bpf/verifier.c:13821 [inline]
do_check_common kernel/bpf/verifier.c:16289
[...]
So make backtracking conservative with this by returning ENOTSUPP.
[1] https://lore.kernel.org/bpf/CACkBjsaXNceR8ZjkLG=dT3P=4A8SBsg0Z5h5PWLryF5=ghKq=g@mail.gmail.com/
📍 영향받는 시스템
Linux 커널 BPF 검증기를 사용하는 수정 이전 버전의 리눅스 커널 시스템
⚔️ 공격 벡터
로컬 사용자가 BPF 프로그램을 로드해 검증기 경고 조건을 유발하는 방식으로 시스템 안정성에 영향을 줄 수 있음
🛡️ 대응 방법
배포판 제공 최신 커널 보안 업데이트를 적용하여 재부팅
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지에서 해당 CVE 수정이 포함된 패치 버전과 비교하여, 같거나 더 최신이면 조치 완료로 판단합니다.