CVE-2025-38413

In the Linux kernel, the following vulnerability has been resolved: virtio-net: xsk: rx: fix the frame's length check When calling buf_to_xdp, the len argument is the frame data's length without virtio header's length (vi->hdr_len). We check that len with xsk_pool_get_rx_frame_size() + vi->hdr_len to ensure the provided len does not larger than the allocated chunk size. The additional vi->hdr_len is because in virtnet_add_recvbuf_xsk, we use part of XDP_PACKET_HEADROOM for virtio header and ask the vhost to start placing data from hard_start + XDP_PACKET_HEADROOM - vi->hdr_len not hard_start + XDP_PACKET_HEADROOM But the first buffer has virtio_header, so the maximum frame's length in the first buffer can only be xsk_pool_get_rx_frame_size() not xsk_pool_get_rx_frame_size() + vi->hdr_len like in the current check. This commit adds an additional argument to buf_to_xdp differentiate between the first buffer and other ones to correctly calculate the maximum frame's length.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.16:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.16:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.16:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.16:rc4:*:*:*:*:*:*

History

19 Nov 2025, 18:23

Type Values Removed Values Added
CPE cpe:2.3:o:linux:linux_kernel:6.16:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.16:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.16:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.16:rc4:*:*:*:*:*:*
CWE NVD-CWE-noinfo
First Time Linux
Linux linux Kernel
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
Summary
  • (es) 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.
References () https://git.kernel.org/stable/c/5177373c31318c3c6a190383bfd232e6cf565c36 - () https://git.kernel.org/stable/c/5177373c31318c3c6a190383bfd232e6cf565c36 - Patch
References () https://git.kernel.org/stable/c/6013bb6bc24c2cac3f45b37a15b71b232a5b00ff - () https://git.kernel.org/stable/c/6013bb6bc24c2cac3f45b37a15b71b232a5b00ff - Patch
References () https://git.kernel.org/stable/c/892f6ed9a4a38bb3360fdff091b9241cfa105b61 - () https://git.kernel.org/stable/c/892f6ed9a4a38bb3360fdff091b9241cfa105b61 - Patch

25 Jul 2025, 14:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-07-25 14:15

Updated : 2025-11-19 18:23


NVD link : CVE-2025-38413

Mitre link : CVE-2025-38413

CVE.ORG link : CVE-2025-38413


JSON object : View

Products Affected

linux

  • linux_kernel