CVE-2024-58099

In the Linux kernel, the following vulnerability has been resolved: vmxnet3: Fix packet corruption in vmxnet3_xdp_xmit_frame Andrew and Nikolay reported connectivity issues with Cilium's service load-balancing in case of vmxnet3. If a BPF program for native XDP adds an encapsulation header such as IPIP and transmits the packet out the same interface, then in case of vmxnet3 a corrupted packet is being sent and subsequently dropped on the path. vmxnet3_xdp_xmit_frame() which is called e.g. via vmxnet3_run_xdp() through vmxnet3_xdp_xmit_back() calculates an incorrect DMA address: page = virt_to_page(xdpf->data); tbi->dma_addr = page_pool_get_dma_addr(page) + VMXNET3_XDP_HEADROOM; dma_sync_single_for_device(&adapter->pdev->dev, tbi->dma_addr, buf_size, DMA_TO_DEVICE); The above assumes a fixed offset (VMXNET3_XDP_HEADROOM), but the XDP BPF program could have moved xdp->data. While the passed buf_size is correct (xdpf->len), the dma_addr needs to have a dynamic offset which can be calculated as xdpf->data - (void *)xdpf, that is, xdp->data - xdp->data_hard_start.
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.12:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:*

History

09 May 2025, 19:36

Type Values Removed Values Added
CPE cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:*
First Time Linux linux Kernel
Linux
CWE CWE-787
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: vmxnet3: Se corrige la corrupción de paquetes en vmxnet3_xdp_xmit_frame. Andrew y Nikolay informaron sobre problemas de conectividad con el balanceo de carga del servicio de Cilium en el caso de vmxnet3. Si un programa BPF para XDP nativo añade un encabezado de encapsulación como IPIP y transmite el paquete por la misma interfaz, en el caso de vmxnet3 se envía un paquete dañado que posteriormente se descarta en la ruta. vmxnet3_xdp_xmit_frame(), que se llama, por ejemplo, mediante vmxnet3_run_xdp() a través de vmxnet3_xdp_xmit_back(), calcula una dirección DMA incorrecta: page = virt_to_page(xdpf->data); tbi->dma_addr = page_pool_get_dma_addr(page) + VMXNET3_XDP_HEADROOM; dma_sync_single_for_device(&adapter->pdev->dev, tbi->dma_addr, buf_size, DMA_TO_DEVICE); Lo anterior asume un desplazamiento fijo (VMXNET3_XDP_HEADROOM), pero el programa XDP BPF podría haber movido xdp->data. Si bien el buf_size pasado es correcto (xdpf->len), dma_addr debe tener un desplazamiento dinámico que se puede calcular como xdpf->data - (void *)xdpf, es decir, xdp->data - xdp->data_hard_start.
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
References () https://git.kernel.org/stable/c/4678adf94da4a9e9683817b246b58ce15fb81782 - () https://git.kernel.org/stable/c/4678adf94da4a9e9683817b246b58ce15fb81782 - Patch
References () https://git.kernel.org/stable/c/59ba6cdadb9c26b606a365eb9c9b25eb2052622d - () https://git.kernel.org/stable/c/59ba6cdadb9c26b606a365eb9c9b25eb2052622d - Patch
References () https://git.kernel.org/stable/c/f82eb34fb59a8fb96c19f4f492c20eb774140bb5 - () https://git.kernel.org/stable/c/f82eb34fb59a8fb96c19f4f492c20eb774140bb5 - Patch

29 Apr 2025, 12:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-04-29 12:15

Updated : 2025-05-09 19:36


NVD link : CVE-2024-58099

Mitre link : CVE-2024-58099

CVE.ORG link : CVE-2024-58099


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-787

Out-of-bounds Write