🇰🇷 한글 설명
리눅스 커널의 BPF(Berkeley Packet Filter) 구성 요소에서 may_goto 함수가 음수 오프셋을 처리할 때 발생하는 취약점입니다. 검증기(Verifier)가 무한 루프를 탐지하는 과정에서 오류가 발생하여 프로그램 탐색을 잘못 중단할 수 있습니다.
💡 쉬운 설명
리눅스 운영체제의 특정 기능을 처리하는 과정에서 계산 오류가 발생하여 시스템이 비정상적인 동작을 할 수 있는 문제입니다. 공격자가 특수하게 제작된 프로그램을 실행하면 시스템의 보안 검사를 우회할 가능성이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bpf: Fix may_goto with negative offset.
Zac's syzbot crafted a bpf prog that exposed two bugs in may_goto.
The 1st bug is the way may_goto is patched. When offset is negative
it should be patched differently.
The 2nd bug is in the verifier:
when current state may_goto_depth is equal to visited state may_goto_depth
it means there is an actual infinite loop. It's not correct to prune
exploration of the program at this point.
Note, that this check doesn't limit the program to only one may_goto insn,
since 2nd and any further may_goto will increment may_goto_depth only
in the queued state pushed for future exploration. The current state
will have may_goto_depth == 0 regardless of number of may_goto insns
and the verifier has to explore the program until bpf_exit.
📍 영향받는 시스템
Linux Kernel (BPF 관련 기능이 활성화된 버전)
⚔️ 공격 벡터
특수하게 조작된 BPF 프로그램을 로드하여 커널 검증기의 논리적 오류를 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인