Vulnerabilidad en kernel de Linux (CVE-2025-38413)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
25/07/2025
Última modificación:
25/07/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: virtio-net: xsk: rx: corrección de la comprobación de la longitud del marco. Al llamar a buf_to_xdp, el argumento len es la longitud de los datos del marco sin la longitud del encabezado de Virtio (vi->hdr_len). Comprobamos esta longitud con xsk_pool_get_rx_frame_size() + vi->hdr_len para garantizar que la longitud proporcionada no supere el tamaño del fragmento asignado. El valor adicional de vi->hdr_len se debe a que, en virtnet_add_recvbuf_xsk, usamos parte de XDP_PACKET_HEADROOM para el encabezado de virtio y solicitamos al vhost que comience a colocar datos desde hard_start + XDP_PACKET_HEADROOM - vi->hdr_len, no hard_start + XDP_PACKET_HEADROOM. Sin embargo, el primer búfer tiene virtio_header, por lo que la longitud máxima del fotograma en el primer búfer solo puede ser xsk_pool_get_rx_frame_size(), no xsk_pool_get_rx_frame_size() + vi->hdr_len, como en la comprobación actual. Este commit añade un argumento adicional a buf_to_xdp para diferenciar entre el primer búfer y los demás y calcular correctamente la longitud máxima del fotograma.