CVE-2024-56719

CVE-2024-56719

Critical · published December 29, 2024

CVSS v3.1
10.0
EPSS
1%
Percentile
44.8
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

net: stmmac: fix TSO DMA API usage causing oops

Commit 66600fac7a98 ("net: stmmac: TSO: Fix unbalanced DMA map/unmap

for non-paged SKB data") moved the assignment of tx_skbuff_dma[]'s

members to be later in stmmac_tso_xmit().

The buf (dma cookie) and len stored in this structure are passed to

dma_unmap_single() by stmmac_tx_clean(). The DMA API requires that

the dma cookie passed to dma_unmap_single() is the same as the value

returned from dma_map_single(). However, by moving the assignment

later, this is not the case when priv->dma_cap.addr64 > 32 as "des"

is offset by proto_hdr_len.

This causes problems such as:

dwc-eth-dwmac 2490000.ethernet eth0: Tx DMA map failed

and with DMA_API_DEBUG enabled:

DMA-API: dwc-eth-dwmac 2490000.ethernet: device driver tries to +free DMA memory it has not allocated [device address=0x000000ffffcf65c0] [size=66 bytes]

Fix this by maintaining "des" as the original DMA cookie, and use

tso_des to pass the offset DMA cookie to stmmac_tso_allocator().

Full details of the crashes can be found at:

https://lore.kernel.org/all/[email protected]/

https://lore.kernel.org/all/klkzp5yn5kq5efgtrow6wbvnc46bcqfxs65nz3qy77ujr5turc@bwwhelz2l4dw/

The record
Technical detail
CVSS v3.1
10.0 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00542 · 44.8th percentile
Published
2024-12-29T14:15Z
Affected products (6)
ProductVersionsFixed in
linux/linux_kernel≥ 5.15.171, < 5.165.16
linux/linux_kernel≥ 6.1.116, < 6.26.2
linux/linux_kernel≥ 6.6.60, < 6.6.686.6.68
linux/linux_kernel≥ 6.11.7, < 6.12.76.12.7
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (9)
EPSS history
Timeline
  • 29 DEC 08:48Z
    net: stmmac: fix TSO DMA API usage causing oops
    cvelistv5