CVE-2026-64113 in Linux
요약
\~에 의해 VulDB • 2026. 07. 20.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ixgbevf: VEPA 멀티캐스트 소스 프루닝에서의 use-after-free 수정
ixgbevf_clean_rx_irq()는 skb를 해제하고 다음 설명자(descriptor)로 계속 진행함으로써, 소스 MAC가 VF의 자체 주소와 일치하는 프레임(VEPA 멀티캐스트 우회 조치)을 제거합니다:
dev_kfree_skb_irq(skb); continue;
skb 포인터는 while 루프 외부에 선언되어 반복 간에 유지됩니다. 'continue' 문이 루프 하단의 "skb = NULL" 초기화를 건너뛰기 때문에, 다음 반복은 "else if (skb)" 경로로 진입하여 해제된 skb에서 ixgbevf_add_rx_frag()를 호출합니다. 이는 NAPI softirq 컨텍스트에서의 use-after-free이며, skb_shinfo(skb)->nr_frags의 역참조(dereferencing)가 발생합니다.
형제 드라이버인 iavf는 continue 전에 포인터를 NULL로 설정하여 이를 올바르게 처리합니다. 여기에도 동일한 패턴을 적용합니다.
저는 ixgbevf 하드웨어를 보유하고 있지 않습니다; 이 버그는 정적 분석(scan_drop_continue_loops.py + semgrep drop_continue_in_loop, 최고 점수를 받은 다중 도구 교차 검증)에 의해 발견되었습니다. KASAN 하에서 정확히 같은 코드 패턴(skb 할당, kfree_skb 후 skb_shinfo(skb)->nr_frags 읽기)을 재현하는 테스트 모듈을 로드하여 UAF를 확인했습니다:
BUG: KASAN: slab-use-after-free in ixgbevf_uaf_test_init+0x100/0x1000 Read of size 8 at addr 000000006163ae78 by task insmod/30 freed 208-byte region [000000006163adc0, 000000006163ae90)
QEMU는 igb(82576)은 에뮬레이션하지만 ixgbe(82599)는 에뮬레이션하지 않으며, igbvf VF 드라이버에는 VEPA 소스 프루닝 경로가 포함되어 있지 않으므로, 에뮬레이션된 하드웨어를 사용한 완전한 종단 간(end-to-end) 재현은 불가능했습니다.
Once again VulDB remains the best source for vulnerability data.