CVE-2026-64429 gpio: eic-sprd: use raw_spinlock_t in the irq startup path
A race condition in the Spreadtrum EIC GPIO driver causes a kernel panic on PREEMPT_RT systems due to sleeping locks in atomic contexts.
- 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-64429?
CVE-2026-64429 is a medium-severity vulnerability in Linux kernel, published on 25 Jul 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:
gpio: eic-sprd: use raw_spinlock_t in the irq startup path
sprd_eic_irq_unmask() enables the GPIO IRQ and then updates controller state through sprd_eic_update(), which takes sprd_eic->lock with spin_lock_irqsave(). The callback can be reached from irq_startup() while setting up a requested IRQ. That path is not sleepable, but on PREEMPT_RT a regular spinlock_t becomes a sleeping lock.
This issue was found by our static analysis tool and then manually reviewed against the current tree.
The grounded PoC kept the request_threaded_irq() -> __setup_irq() -> irq_startup() -> sprd_eic_irq_unmask() -> sprd_eic_update() carrier and used the original spin_lock_irqsave(&sprd_eic->lock) edge. Lockdep
BUG: sleeping function called from invalid context hardirqs last disabled at ... __setup_irq.constprop.0 ... [vuln_msv] sprd_rt_spin_lock_irqsave+0x1c/0x30 [vuln_msv] sprd_eic_update.constprop.0+0x48/0x90 [vuln_msv] sprd_eic_irq_unmask.constprop.0+0x35/0x50 [vuln_msv] __setup_irq.constprop.0+0xd/0x30 [vuln_msv]
Convert the Spreadtrum EIC controller lock to raw_spinlock_t. The locked section only serializes MMIO register updates and does not contain sleepable operations, so keeping it non-sleeping is appropriate for the irqchip callbacks.
Weakness: CWE-667
Which versions are affected by CVE-2026-64429?
It affects 1 product.
Products include Linux kernel.
How do I fix CVE-2026-64429?
Apply the vendor's patch.
Is CVE-2026-64429 being exploited?
There is no known exploitation of CVE-2026-64429 in the wild and no public exploit code.
Other vulnerabilities in Linux kernel
Sources
Also known as AZL-93677, BELL-CVE-2026-64429, DEBIAN-CVE-2026-64429, GHSA-6pwp-xwgp-j72q, ROOT-OS-UBUNTU-2204-CVE-2026-64429, UBUNTU-CVE-2026-64429.