CVE-2026-64500
Received Received - Intake

Race Condition in Linux Kernel IIO ADC Driver

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

Publication date: 2026-07-25

Last updated on: 2026-07-25

Assigner: kernel.org

Description

In the Linux kernel, the following vulnerability has been resolved: iio: adc: lpc32xx: Initialize completion before requesting IRQ In the report from Jaeyoung Chung: "lpc32xx_adc_probe() in drivers/iio/adc/lpc32xx_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 lpc32xx_adc_probe(): iodev = devm_iio_device_alloc(&pdev->dev, sizeof(*st)); /* st kzalloc-zeroed */ ... retval = devm_request_irq(&pdev->dev, irq, lpc32xx_adc_isr, 0, LPC32XXAD_NAME, st); /* register handler */ ... init_completion(&st->completion); /* initialize completion */ lpc32xx_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-07-25
Last Modified
2026-07-25
Generated
2026-07-25
AI Q&A
2026-07-25
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 is a Linux kernel vulnerability in the lpc32xx ADC driver where the interrupt handler is registered before the completion structure is initialized. If an interrupt occurs between these 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 lpc32xx ADC driver and may cause a kernel panic if triggered. Detection requires checking the kernel version and driver code. Use commands like 'uname -a' to check kernel version and 'dmesg | grep lpc32xx' to look for related errors.

Impact Analysis

This vulnerability can cause system crashes (kernel panics) if an interrupt arrives at the wrong time during driver initialization. It may lead to denial of service for systems using the affected ADC hardware.

Mitigation Strategies

Apply the kernel patch that moves init_completion() before devm_request_irq() in the lpc32xx ADC driver. Update to a fixed kernel version if available. Monitor system logs for kernel panics or unexpected interrupts.

Chat Assistant

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

EPSS Chart