CVE-2024-56719 net: stmmac: fix TSO DMA API usage causing oops

Critical 10.0 Published Updated

A bug in the Linux kernel stmmac driver causes an oops due to incorrect DMA API usage, leading to a denial of service.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2024-56719?

CVE-2024-56719 is a critical memory corruption vulnerability in Linux kernel, published on 29 Dec 2024. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

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/

Which versions are affected by CVE-2024-56719?

It affects 1 product.

Products include Linux kernel.

How do I fix CVE-2024-56719?

Apply the vendor's patch.

Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.

Is CVE-2024-56719 being exploited?

There is no known exploitation of CVE-2024-56719 in the wild and no public exploit code.

All Linux kernel vulnerabilities

Sources

Also known as AZL-55253, AZL-55297, BELL-CVE-2024-56719, DEBIAN-CVE-2024-56719, GHSA-3868-3wh9-6qr7, ROOT-OS-DEBIAN-12-CVE-2024-56719 and 2 more.

Is CVE-2024-56719 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free