CVE-2026-64500
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().
How to fix
- Linux Linux7090c0d29708ee305022d0ea7b37612b33242fa2, 0e33587967b356519aa6f220b5b43c6976320397, 1ddf7b6ffb8ebb22b92a184a9eaa76277ef0c7cd, 820c4f15353efe9a9429ae86ccceeaf4e0e4e585, 48eccc6caed4e62c0f199ab3a3772fa969cd3b2d, 9e2e8b8cdfd37ae7c7a8a5c96c59e98a768731c4, 2f18c5551aa97ca7f39dbb151c67c9053ccadc17, e561b35633f450ee607e87a6401d97f156a0cd54 or later
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| Linux Linux | 7901b2a1453e48c9defff2c97c67d3089bf4df7a ≤ v < 7090c0d29708ee305022d0ea7b37612b33242fa2, 7901b2a1453e48c9defff2c97c67d3089bf4df7a ≤ v < 0e33587967b356519aa6f220b5b43c6976320397, 7901b2a1453e48c9defff2c97c67d3089bf4df7a ≤ v < 1ddf7b6ffb8ebb22b92a184a9eaa76277ef0c7cd, 7901b2a1453e48c9defff2c97c67d3089bf4df7a ≤ v < 820c4f15353efe9a9429ae86ccceeaf4e0e4e585, 7901b2a1453e48c9defff2c97c67d3089bf4df7a ≤ v < 48eccc6caed4e62c0f199ab3a3772fa969cd3b2d, 7901b2a1453e48c9defff2c97c67d3089bf4df7a ≤ v < 9e2e8b8cdfd37ae7c7a8a5c96c59e98a768731c4, 7901b2a1453e48c9defff2c97c67d3089bf4df7a ≤ v < 2f18c5551aa97ca7f39dbb151c67c9053ccadc17, 7901b2a1453e48c9defff2c97c67d3089bf4df7a ≤ v < e561b35633f450ee607e87a6401d97f156a0cd54, 4.12 | 7090c0d29708ee305022d0ea7b37612b33242fa2, 0e33587967b356519aa6f220b5b43c6976320397, 1ddf7b6ffb8ebb22b92a184a9eaa76277ef0c7cd, 820c4f15353efe9a9429ae86ccceeaf4e0e4e585, 48eccc6caed4e62c0f199ab3a3772fa969cd3b2d, 9e2e8b8cdfd37ae7c7a8a5c96c59e98a768731c4, 2f18c5551aa97ca7f39dbb151c67c9053ccadc17, e561b35633f450ee607e87a6401d97f156a0cd54 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.