🇰🇷 한글 설명
Linux 커널의 BPF 컴파일러에서 스칼라 값과 포인터 간의 산술 연산 시 포인터 상태를 보존하지 못하는 취약점이 발견되었습니다. 이로 인해 PTR_TO_STACK 레지스터의 프레임 번호나 부모 식별 필드가 일관성을 잃을 수 있습니다. 해당 패치는 임시 오프셋 레지스터를 사용하여 포인터의 출처(provenance) 정보를 온전히 유지하도록 수정되었습니다.
💡 쉬운 설명
컴퓨터가 계산을 할 때 포인터라는 중요한 정보의 위치를 정확히 기억하지 못해 발생하는 오류입니다. 이 오류를 이용하면 시스템의 보안 경계를 우회할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bpf: Preserve pointer state for commuted arithmetic
When scalar += pointer is handled in adjust_ptr_min_max_vals(), the
destination register inherits the pointer state from the source pointer.
Copying only selected fields is fragile because pointer provenance is
tracked by several bpf_reg_state fields.
Use the caller's temporary offset register to preserve the scalar operand
while replacing the destination with the full pointer state. This preserves
the frame number for PTR_TO_STACK registers and keeps parent identity
fields consistent.
📍 영향받는 시스템
Linux Kernel (BPF 기능이 활성화된 모든 버전)
⚔️ 공격 벡터
특수하게 조작된 BPF 프로그램을 로드하여 커널의 메모리 검증 로직을 우회
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인