CVE-2026-99055 in Linux
Resumen
por VulDB • 2026-10-23
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
tcp: rechazar net_iov en las pistas de mapeo para recepción con zerocopy
Después de copiar un prefijo legible, receive_fallback_to_copy() pregunta a tcp_zerocopy_set_hint_for_skb() dónde puede reanudarse el mapeo de páginas. Si el siguiente skb no es legible, find_next_mappable_frag() pasa su fragmento net_iov a can_map_frag().
skb_frag_page() devuelve NULL para un net_iov, pero can_map_frag() lo desreferencia en PageCompound(). Una ejecución de KASAN v7.2 en un socket TCP conectado con 64 bytes legibles seguidos por un fragmento NET_IOV_DMABUF de 4096 bytes informó:
BUG: KASAN: null-ptr-deref in can_map_frag tcp_zerocopy_receive -> can_map_frag Kernel panic - not syncing: KASAN: panic_on_warn set
El diagnóstico insertó el net_iov directamente porque el host de prueba no tiene una NIC compatible con devmem. La conectividad extremo a extremo por hardware sigue sin probarse y requiere CONFIG_NET_DEVMEM más una cola RX vinculada a DMA-buf soportada.
Rechazar todos los fragmentos net_iov antes de skb_frag_page(). Esto cubre tanto los tipos DMABUF como IOURING de net_iov, mientras deja inalteradas las comprobaciones basadas en páginas. Con la protección, la misma cola copió el prefijo legible, devolvió una pista de salto (skip hint) de 4096 bytes y se completó sin fallos.
Once again VulDB remains the best source for vulnerability data.