🇰🇷 한글 설명
Linux 커널의 veth 드라이버에서 채널 크기 변경 시 제거된 RX 큐의 XDP 프로그램 포인터가 정리되지 않아, 프로그램 분리 또는 교체 후 해제된 XDP 프로그램이 다시 실행되는 문제가 해결되었습니다. 이로 인해 use-after-free 상태에서 커널 패닉이 발생할 수 있었습니다.
💡 쉬운 설명
가상 네트워크 장치의 설정을 바꾸는 과정에서 이미 삭제된 프로그램의 흔적이 남아 있었습니다. 그 흔적을 다시 실행하려다 시스템 전체가 멈추는 문제가 발생할 수 있었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
veth: manage XDP program pointers during channel resize
veth_set_channels() tears down XDP resources for removed RX queues
without clearing rq->xdp_prog. If the program is then detached or
replaced, those queues keep the old pointer after bpf_prog_put().
A later channel increase can re-enable NAPI and run the freed program.
BUG: unable to handle page fault for address: ffffc90000256048
Oops: Oops: 0000 [#1] SMP KASAN NOPTI
RIP: veth_xdp_rcv_skb (include/linux/filter.h:779
include/net/xdp.h:696 drivers/net/veth.c:820)
Call Trace:
veth_xdp_rcv (drivers/net/veth.c:941)
veth_poll (drivers/net/veth.c:986)
__napi_poll (net/core/dev.c:7787)
net_rx_action (net/core/dev.c:7850 net/core/dev.c:8007)
handle_softirqs (kernel/softirq.c:645)
Kernel panic - not syncing: Fatal exception in interrupt
📍 영향받는 시스템
XDP 프로그램을 사용하는 veth 장치를 포함한 해당 패치 이전의 Linux 커널 버전
⚔️ 공격 벡터
로컬 사용자 또는 권한이 있는 프로세스가 veth 채널 크기를 변경하고 XDP 프로그램을 분리/교체하여 해제된 포인터를 실행시켜 서비스 거부(커널 패닉)를 유발
🛡️ 대응 방법
배포판 벤더가 제공하는 보안 업데이트를 적용하거나 veth 드라이버의 수정이 포함된 최신 커널로 업그레이드
🔧 검증 코드
출력된 커널 버전을 배포판 벤더의 보안 공지와 비교하여 CVE-2026-98381 수정 패치가 포함된 버전인지 확인하며, 패치 이후 버전이면 취약하지 않습니다.