CVE-2026-64429

Source
https://cve.org/CVERecord?id=CVE-2026-64429
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64429.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-64429
Downstream
Published
2026-07-25T08:51:06.016Z
Modified
2026-07-27T04:03:19.957892031Z
Summary
gpio: eic-sprd: use raw_spinlock_t in the irq startup path
Details

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

gpio: eic-sprd: use rawspinlockt in the irq startup path

sprdeicirqunmask() enables the GPIO IRQ and then updates controller state through sprdeicupdate(), which takes sprdeic->lock with spinlockirqsave(). The callback can be reached from irqstartup() while setting up a requested IRQ. That path is not sleepable, but on PREEMPTRT 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 requestthreadedirq() -> __setupirq() -> irqstartup() -> sprdeicirqunmask() -> sprdeicupdate() carrier and used the original spinlockirqsave(&sprdeic->lock) edge. Lockdep

BUG: sleeping function called from invalid context hardirqs last disabled at ... __setupirq.constprop.0 ... [vulnmsv] sprdrtspinlockirqsave+0x1c/0x30 [vulnmsv] sprdeicupdate.constprop.0+0x48/0x90 [vulnmsv] sprdeicirqunmask.constprop.0+0x35/0x50 [vulnmsv] __setupirq.constprop.0+0xd/0x30 [vulnmsv]

Convert the Spreadtrum EIC controller lock to rawspinlockt. 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.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64429.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
25518e024e3a6e5715d672f1daa91e1d100f7436
Fixed
96612bf2712cd961dbd9b52f3a9b4ab668f57628
Fixed
581ac2ad001ff1128931191f249a7f2074672b7a
Fixed
e244cd8b51001ba480f274c44dba9002813a4739
Fixed
19d63fd528719ce7d06d9aeb88d25b7d6478198a
Fixed
6112fba4150039ccd90e29f2d1b788c73ad7b3dd
Fixed
4750909a40da9016185e0ac991510a278cecb1e7
Fixed
5c3c9ec1172a4c3384b8b800b3a8896cc2c1b20e
Fixed
90f0109019e6817eb40a486671b7722d1544ae29

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64429.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
4.17.0
Fixed
5.10.261
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.212
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.178
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.145
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.96
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.39
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.1.4

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64429.json"