PatchSiren cyber security CVE debrief
CVE-2026-46029 Linux CVE debrief
A slab allocator re-entrancy vulnerability exists in the Linux kernel's memory management subsystem on uniprocessor (UP) builds. On UP kernels (!CONFIG_SMP), spin_trylock() unconditionally succeeds even when the target lock is already held. When kmalloc_nolock() is invoked from non-maskable interrupt (NMI) context, it can re-enter the slab allocator and acquire n->list_lock that the interrupted context already holds, resulting in slab state corruption. The vulnerability manifests as a BUG: spinlock trylock failure on UP when CONFIG_DEBUG_SPINLOCK is enabled. The fix returns NULL early from kmalloc_nolock() when called from NMI context on UP kernels, preventing the re-entrancy condition.
- Vendor
- Linux
- Product
- Unknown
- CVSS
- HIGH 7
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-05-27
- Original CVE updated
- 2026-06-16
- Advisory published
- 2026-05-27
- Advisory updated
- 2026-06-16
Who should care
Linux kernel maintainers, embedded systems developers using UP kernels, security teams monitoring kernel stability, and organizations running legacy uniprocessor systems or custom kernel builds with CONFIG_SMP disabled.
Technical summary
On uniprocessor (UP) Linux kernel builds, spin_trylock() is implemented as a no-op that always succeeds. The kmalloc_nolock() function, designed for atomic contexts, uses spin_trylock() to acquire n->list_lock in the slab allocator. When called from NMI context on UP, kmalloc_nolock() can execute while the interrupted context already holds n->list_lock. Because spin_trylock() reports success, the NMI handler re-enters the slab allocator and corrupts internal state. The vulnerability is a classic re-entrancy bug where interrupt safety mechanisms fail due to UP-specific lock implementation. The fix adds an early return NULL check for in_nmi() on UP kernels, preventing allocation attempts that would corrupt slab state. This vulnerability does not affect SMP kernels where spin_trylock() properly detects lock contention.
Defensive priority
medium
Recommended defensive actions
- Apply kernel patches from stable branches (5b31044e649e3e54c2caef135c09b371c2fbcd08, a8d95d274be241ad21f6523bf2d6ba0d7d7e46b7, d66553204a15bdb257d9ef8aca1e12f5fbb910b2)
- Rebuild kernel with CONFIG_SMP=y if hardware supports multiprocessing to eliminate UP-specific code path
- Enable CONFIG_DEBUG_SPINLOCK on UP test systems to detect similar locking issues
- Audit NMI handlers for kmalloc_nolock() usage in custom kernel modules
- Monitor kernel logs for 'BUG: spinlock trylock failure on UP' messages indicating exploitation attempts
Evidence notes
The vulnerability description is sourced from the official CVE record published 2026-05-27. The fix is confirmed through three stable kernel Git commits. The issue affects UP (uniprocessor) kernel builds specifically, not SMP configurations. The slub_kunit test module can trigger the BUG when CONFIG_DEBUG_SPINLOCK is enabled on UP.
Sources and references
Verified primary and authoritative sources
-
CVE-2026-46029 CVE Program record
Publisher, destination, and source semantics verified
URL: https://www.cve.org/CVERecord?id=CVE-2026-46029
CVE Program - Official CVE Program record with source-provided CVE metadata.
-
CVE-2026-46029 NVD vulnerability detail
Publisher, destination, and source semantics verified
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-46029
NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.
Supplemental references
-
Source reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/5b31044e649e3e54c2caef135c09b371c2fbcd08
416baaa9-dc9f-4396-8d5f-8c081fb06d67
-
Source reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/a8d95d274be241ad21f6523bf2d6ba0d7d7e46b7
416baaa9-dc9f-4396-8d5f-8c081fb06d67
-
Source reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/d66553204a15bdb257d9ef8aca1e12f5fbb910b2
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Methodology and review provenance
AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.