CVE-2026-64602: iio: adc: spear: Initialize completion before requesting IRQ
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 initcompletion(), the handler calls complete() on an uninitialized completion, causing a kernel panic.
The probe path, in spearadcprobe():
iodev = devmiiodevicealloc(&pdev->dev, sizeof(st)); / st kzalloc-zeroed / ... retval = devmrequestirq(&pdev->dev, irq, spearadcisr, 0, LPC32XXADNAME, st); / register handler / ... initcompletion(&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 devmrequestirq().
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
In spear_adc_probe(), move init_completion(&st->completion); above the devm_request_irq() call so the interrupt handler can safely call complete() without using an uninitialized completion/wait.lock.
Linux kernel driver: drivers/iio/adc/spear_adc.c (spear_adc_probe) Initialization order for completion vs devm_request_irq = init_completion(&st->completion) must be called before devm_request_irq()
Event History
Frequently Asked Questions
What is the severity of CVE-2026-64602?
CVE-2026-64602 has a risk rating of 37.
What does CVE-2026-64602 involve?
CVE-2026-64602 involves a vulnerability in the Linux kernel where completion is not initialized before requesting an interrupt in the spear ADC driver.
How do I fix CVE-2026-64602?
To fix CVE-2026-64602, ensure that the completion variable is initialized before calling devm_request_irq() in the spear ADC driver.
Which software is affected by CVE-2026-64602?
CVE-2026-64602 affects the Linux kernel, specifically the spear ADC driver.
When was CVE-2026-64602 published?
CVE-2026-64602 was published on August 6, 2026.