CVE-2026-99055 in Linux
요약
\~에 의해 VulDB • 2026. 10. 24.
리눅스 커널에서 다음 취약점이 해결되었습니다:
tcp: zerocopy 수신 매핑 힌트에서 net_iov 거부하기
읽을 수 있는 접두사를 복사한 후 receive_fallback_to_copy()는 tcp_zerocopy_set_hint_for_skb()에 페이지 매핑이 재개될 위치를 묻습니다. 다음 skb가 읽을 수 없는 경우, find_next_mappable_frag()은 해당 net_iov 조각을 can_map_frag()로 전달합니다.
skb_frag_page()는 net_iov의 경우 NULL을 반환하지만, can_map_frag()는 PageCompound()에서 이를 역참조(dereferences)합니다. 64바이트의 읽을 수 있는 데이터 뒤에 4096바이트 크기의 NET_IOV_DMABUF 조각이 연결된 TCP 소켓에서 실행한 v7.2 KASAN 테스트에서는 다음과 같은 결과가 보고되었습니다:
BUG: KASAN: null-ptr-deref in can_map_frag tcp_zerocopy_receive -> can_map_frag Kernel panic - not syncing: KASAN: panic_on_warn set
이 진단은 테스트 호스트에 devmem 지원 NIC가 없기 때문에 net_iov를 직접 삽입했습니다. 하드웨어 엔드투엔드 도달 가능성(end-to-end reachability)은 아직 테스트되지 않았으며, CONFIG_NET_DEVMEM과 지원되는 DMA-buf 바인딩 RX 큐가 필요합니다.
skb_frag_page() 이전에 모든 net_iov 조각을 거부합니다. 이는 DMABUF 및 IOURING 유형의 net_iov를 모두 커버하면서 페이지 기반(page-backed) 검사는 변경하지 않습니다. 이 보호 장치(guard)와 함께 동일한 큐는 읽을 수 있는 접두사를 복사하고, 4096바이트의 스킵 힌트를 반환하며, 오류 없이 완료되었습니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.