CVE-2026-64602

Source
https://cve.org/CVERecord?id=CVE-2026-64602
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64602.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-64602
Downstream
Related
Published
2026-08-06T07:13:54.519Z
Modified
2026-08-10T08:27:02.115214793Z
Summary
iio: adc: spear: Initialize completion before requesting IRQ
Details

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

iio: adc: spear: Initialize completion before requesting IRQ

In the report from Jaeyoung Chung:

"spearadcprobe() in drivers/iio/adc/spearadc.c registers its interrupt handler with devmrequestirq() before it initializes st->completion with initcompletion(). If an interrupt arrives after devmrequestirq() and before init_completion(), the handler calls complete() on an uninitialized completion, causing a kernel panic.

The probe path, in spearadcprobe():

iodev = devm_iio_device_alloc(&pdev->dev, sizeof(*st)); /* st kzalloc-zeroed */
...
retval = devm_request_irq(&pdev->dev, irq, spear_adc_isr, 0,
                          LPC32XXAD_NAME, st);           /* register handler */
...
init_completion(&st->completion);                       /* initialize completion */

spearadcisr() calls complete():

complete(&st->completion);

If the device raises an interrupt before initcompletion() runs, complete() acquires the uninitialized wait.lock and walks the zeroed tasklist in swakeuplocked(). The zeroed tasklist makes listempty() return false, so swakeuplocked() dereferences a NULL list entry, triggering a KASAN wild-memory-access."

Fix the chance of a spurious IRQ causing an uninitialized pointer dereference by moving initcompletion() above devmrequest_irq().

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64602.json",
    "cna_assigner": "Linux"
}
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
b586e5d9eee038b8ee6f846cdb6cf2fcbcb2f4ed
Fixed
aea8ae6c4d3ed58d9223360f758df6bd8b90c608
Fixed
67a49ab41320b3f721ce4be7447754ff040acbd5
Fixed
a50757398794aaa25f908b96c6733e045466cba4
Fixed
f3f90bc7b38ba3ff14f131cea0f8eb77624787a8
Fixed
37077d8271b1f24894fbc21bca1c4cd337525d31
Fixed
bbfebae473ac2c8a194523b29ccb9b45f02f134c
Fixed
eb5b07c9d0ec1a9d4b6871b14793c19967d79dc4
Fixed
3ee2128b6f0eb0be7b6cb8f6e0f1f113a65201a0

Database specific

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

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
3.16.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-64602.json"