CVE-2026-90046 mm/page_alloc: don't spin_trylock() in NMI on UP

High 7.8 Published Updated

Local attackers can exploit a race condition in the Linux kernel memory allocator on uniprocessor builds to cause crashes or escalate privileges.

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-2026-90046?

CVE-2026-90046 is a high-severity vulnerability in Linux, published on 16 Sep 2026. 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:

mm/page_alloc: don't spin_trylock() in NMI on UP

Patch series "mm/page_alloc: fixes for free_pages_nolock() on RT/UP".

Pre-existing bugs found by Sashiko during review of this other series: https://lore.kernel.org/all/[email protected]/

I have not reproduced these bugs, and I suspect there is no real-world user that is affected by them.

This patch (of 2):

As noted in can_spin_trylock(), using this is unsafe in this context. commit 620b46ed6ae17 ("mm/page_alloc: return NULL early from alloc_frozen_pages_nolock() in NMI on UP") fixed this on the alloc side but missed the free side.

Impact: If BPF programs using these features in NMI (probably tracing) are present on non-SMP builds this might crash the kernel and is probably exploitable by local attackers for privilege escalation.

Which versions are affected by CVE-2026-90046?

How do I fix CVE-2026-90046?

Apply the vendor's patch.

Is CVE-2026-90046 being exploited?

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

Sources

Also known as BELL-CVE-2026-90046, DEBIAN-CVE-2026-90046, GHSA-h63h-wcx8-jm4r, UBUNTU-CVE-2026-90046.

Is CVE-2026-90046 in your software?

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

Check your SBOMs for free