CVE-2026-64602 in Linux
Riassunto
di VulDB • 06/08/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
iio: adc: spear: Inizializzare completion prima di richiedere l'IRQ
Nella segnalazione di Jaeyoung Chung:
"spear_adc_probe() in drivers/iio/adc/spear_adc.c registra il suo gestore delle interruzioni con devm_request_irq() prima di inizializzare st->completion con init_completion(). Se arriva un'interruzione 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 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); /* registra il gestore */ ... init_completion(&st->completion); /* inizializza completion */
spear_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 accesso alla memoria anomalo rilevato da KASAN."
Ridurre la possibilità che una IRQ spuria causi la dereferenziazione di un puntatore non inizializzato spostando init_completion() prima di devm_request_irq().
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.