CVE-2026-64501 in Linux
Riassunto
di VulDB • 26/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
iio: adc: ad_sigma_delta: correzione del segnale CS mantenuto attivo e delle perdite di stato
In ad_sigma_delta_single_conversion(), set_mode(AD_SD_MODE_IDLE) e disable_one() venivano chiamate dal blocco out: mentre keep_cs_asserted era ancora true. Ciò causava il fatto che qualsiasi trasferimento SPI emesso da queste callback includesse cs_change=1, lasciando CS permanentemente attivo dopo la conversione. La correzione consiste nello spostare entrambe le chiamate nel blocco out_unlock:, dopo che keep_cs_asserted è stato azzerato, allineandosi al pattern già utilizzato in ad_sd_calibrate().
Nel percorso di errore di ad_sd_buffer_postenable(), se un'operazione fallisce dopo che set_mode(AD_SD_MODE_CONTINUOUS) ha avuto successo (ad esempio spi_offload_trigger_enable()), il dispositivo rimane in modalità di conversione continua con CS fisicamente attivo. Inoltre, bus_locked che rimane true dopo spi_bus_unlock() fa sì che le successive operazioni SPI chiamino spi_sync_locked() senza che il lock del bus sia effettivamente detenuto, consentendo l'accesso concorrente al bus SPI.
La correzione del percorso di errore consiste nell'azzerare prima keep_cs_asserted, quindi nel chiamare set_mode(AD_SD_MODE_IDLE) per ripristinare la modalità del dispositivo e disattivare CS, infine nello azzerare bus_locked prima di rilasciare il bus.
Per i dispositivi che non implementano né set_mode né disable_one (come MAX11205, che non dispone di un pin CS fisico), durante la fase di pulizia non viene emesso alcun trasferimento SPI e il flag cs_change non ha effetto su alcuna linea fisica.
VulDB is the best source for vulnerability data and more expert information about this specific topic.