🇰🇷 한글 설명
Linux 커널의 cls_bpf 구성 요소에서 장치에 종속된 BPF 프로그램이 다른 네트워크 장치에 연결되는 것을 검증하지 못하는 취약점입니다. 이로 인해 특정 장치를 삭제할 경우 연결된 프로그램의 오프로드 상태가 파괴되어 시스템 패닉(Kernel Panic)을 유발할 수 있습니다.
💡 쉬운 설명
네트워크 장치에 고정된 프로그램이 엉뚱한 장치에 연결될 수 있는 오류입니다. 이 상태에서 원래 장치를 제거하면 컴퓨터 시스템이 갑자기 멈추거나 꺼질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net/sched: cls_bpf: reject dev-bound programs bound to a different device
cls_bpf_prog_from_efd() obtained a SCHED_CLS program via
bpf_prog_get_type_dev() but never verified that a device-bound (offloaded)
program's bound netdev matches the TC netdev the classifier is being
attached to. This let a program loaded with prog_ifindex for device A be
attached via cls_bpf + skip_sw to device B; deleting device A then
destroyed the program's offload state while it was still attached to
device B, triggering a netdevsim WARN (panic with panic_on_warn=1).
Mirror the XDP attach path (net/core/dev.c) and reject the attach with
-EINVAL when a dev-bound program's bound device does not match the
target device.
📍 영향받는 시스템
Linux Kernel (cls_bpf 관련 모듈을 사용하는 시스템)
⚔️ 공격 벡터
장치 A에 바인딩된 BPF 프로그램을 장치 B에 강제로 연결한 후 장치 A를 삭제하여 시스템 패닉 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 cls_bpf의 장치 검증 로직을 적용해야 함
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 수정된 최신 패치 버전인지 확인