CVE-2026-64602
Received Received - Intake

Race Condition in Linux Kernel IIO ADC Driver Leads to Kernel Panic

Vulnerability report for CVE-2026-64602, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-06

Last updated on: 2026-08-06

Assigner: kernel.org

Description

In the Linux kernel, the following vulnerability has been resolved: iio: adc: spear: Initialize completion before requesting IRQ In the report from Jaeyoung Chung: "spear_adc_probe() in drivers/iio/adc/spear_adc.c registers its interrupt handler with devm_request_irq() before it initializes st->completion with init_completion(). If an interrupt arrives after devm_request_irq() and before init_completion(), the handler calls complete() on an uninitialized completion, causing a kernel panic. The probe path, in spear_adc_probe(): 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 */ spear_adc_isr() calls complete(): complete(&st->completion); If the device raises an interrupt before init_completion() runs, complete() acquires the uninitialized wait.lock and walks the zeroed task_list in swake_up_locked(). The zeroed task_list makes list_empty() return false, so swake_up_locked() 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 init_completion() above devm_request_irq().

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-06
Last Modified
2026-08-06
Generated
2026-08-06
AI Q&A
2026-08-06
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Currently, no data is known.

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability is in the Linux kernel's IIO ADC driver for SPEAr platforms. It occurs when the probe function registers an interrupt handler before initializing a completion structure. If an interrupt arrives between these two steps, the handler tries to complete an uninitialized structure, causing a kernel panic due to a NULL pointer dereference.

Detection Guidance

This vulnerability is specific to the Linux kernel's IIO ADC driver for SPEAr platforms. Detection requires checking if the system uses the affected spear_adc driver and if the race condition exists in the probe function. Inspect kernel logs for kernel panics or KASAN reports related to spear_adc. Check the driver source code for the order of init_completion() and devm_request_irq() calls.

Impact Analysis

This vulnerability can cause system crashes (kernel panics) if an interrupt occurs at the wrong time during device initialization. It may lead to denial of service as the affected system becomes unresponsive until rebooted.

Mitigation Strategies

Apply the kernel patch that moves init_completion() before devm_request_irq() in the spear_adc_probe() function. Update to a kernel version containing the fix. If immediate patching is not possible, disable the spear_adc driver or the affected device to prevent the race condition from being triggered.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-64602. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart