CVE-2024-56593 wifi: brcmfmac: Fix oops due to NULL pointer dereference in brcmf_sdiod_sglist_rw()

Medium 5.5 Published Updated

A NULL pointer dereference in the brcmfmac WiFi driver can cause a kernel oops and denial of service when specific alignment settings and high packet queues occur.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2024-56593?

CVE-2024-56593 is a medium-severity vulnerability in Linux kernel, published on 27 Dec 2024. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

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

wifi: brcmfmac: Fix oops due to NULL pointer dereference in brcmf_sdiod_sglist_rw()

This patch fixes a NULL pointer dereference bug in brcmfmac that occurs when a high 'sd_sgentry_align' value applies (e.g. 512) and a lot of queued SKBs are sent from the pkt queue.

The problem is the number of entries in the pre-allocated sgtable, it is nents = max(rxglom_size, txglom_size) + max(rxglom_size, txglom_size) >> 4 + 1. Given the default [rt]xglom_size=32 it's actually 35 which is too small. Worst case, the pkt queue can end up with 64 SKBs. This occurs when a new SKB is added for each original SKB if tailroom isn't enough to hold tail_pad. At least one sg entry is needed for each SKB. So, eventually the "skb_queue_walk loop" in brcmf_sdiod_sglist_rw may run out of sg entries. This makes sg_next return NULL and this causes the oops.

The patch sets nents to max(rxglom_size, txglom_size) * 2 to be able handle the worst-case. Btw. this requires only 64-35=29 * 16 (or 20 if CONFIG_NEED_SG_DMA_LENGTH) = 464 additional bytes of memory.

Weakness: CWE-476

Which versions are affected by CVE-2024-56593?

It affects 1 product.

Products include Linux kernel.

How do I fix CVE-2024-56593?

Apply the vendor's patch.

Is CVE-2024-56593 being exploited?

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

All Linux kernel vulnerabilities

Sources

Also known as AZL-55139, AZL-55238, BELL-CVE-2024-56593, DEBIAN-CVE-2024-56593, GHSA-9pg7-c56m-xqjx, UBUNTU-CVE-2024-56593.

Is CVE-2024-56593 in your software?

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

Check your SBOMs for free