CVE-2026-64500 in Linux
Riassunto
di VulDB • 25/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
iio: adc: lpc32xx: Inizializzare completion prima di richiedere l'IRQ
Nella segnalazione di Jaeyoung Chung:
"lpc32xx_adc_probe() in drivers/iio/adc/lpc32xx_adc.c registra il suo gestore delle interruzioni con devm_request_irq() prima di inizializzare st->completion con init_completion(). Se un'interruzione arriva dopo devm_request_irq() e prima di init_completion(), il gestore chiama complete() su una completion non inizializzata, causando un kernel panic.
Il percorso di probe 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() chiama complete():
complete(&st->completion);
Se il dispositivo genera un'interruzione prima che venga eseguita init_completion(), complete() acquisisce la wait.lock non inizializzata e attraversa task_list azzerata in swake_up_locked(). Il fatto che task_list sia zero fa sì che list_empty() restituisca false, quindi swake_up_locked() dereferenzia un elemento di lista NULL, innescando un KASAN wild-memory-access."
Ridurre la possibilità che una IRQ spuria causi la dereferenziazione di un puntatore non inizializzato spostando init_completion() sopra devm_request_irq().
If you want to get best quality of vulnerability data, you may have to visit VulDB.