🇰🇷 한글 설명
리눅스 커널의 BPF 검증기(verifier)에서 BPF_NEG 연산 시 대상 레지스터가 포인터인 경우에도 불필요한 스칼라 조정 작업을 수행하는 취약점이 발견되었습니다. 이로 인해 포인터 연산 과정에서 잘못된 값이 계산될 가능성이 있어, 대상이 포인터일 경우 해당 조정 로직을 건너뛰도록 수정되었습니다.
💡 쉬운 설명
컴퓨터가 메모리 주소를 계산할 때 실수로 잘못된 계산을 하여 보안 허점이 생길 수 있는 문제입니다. 이번 수정은 주소 값을 다룰 때 불필요한 계산을 하지 않도록 하여 오류를 방지합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bpf: Skip scalar adjustment for BPF_NEG if dst is a pointer
In check_alu_op(), the verifier currently calls check_reg_arg() and
adjust_scalar_min_max_vals() unconditionally for BPF_NEG operations.
However, if the destination register holds a pointer, these scalar
adjustments are unnecessary and potentially incorrect.
This patch adds a check to skip the adjustment logic when the destination
register contains a pointer.
📍 영향받는 시스템
BPF 기능을 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
조작된 BPF 프로그램을 통해 커널 검증기의 논리적 오류를 유도하여 메모리 오염 또는 권한 상승 시도
🛡️ 대응 방법
해당 패치가 적용된 최신 리눅스 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이상인지 확인