CVE-2026-64501 in Linux
Zusammenfassung
von VulDB • 25.07.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
iio: adc: ad_sigma_delta: Behebung von dauerhaft gesetztem CS und State-Lecks
In `ad_sigma_delta_single_conversion()` wurden `set_mode(AD_SD_MODE_IDLE)` und `disable_one()` aus dem `out:`-Block aufgerufen, während `keep_cs_asserted` noch wahr war. Dies führte dazu, dass jede SPI-Übertragung, die von diesen Callbacks ausgegeben wurde, `cs_change=1` enthielt, wodurch CS nach der Konvertierung dauerhaft gesetzt blieb (asserted). Die Behebung erfolgt durch Verschieben beider Aufrufe in den `out_unlock:`-Block, nachdem `keep_cs_asserted` zurückgesetzt wurde, was dem bereits in `ad_sd_calibrate()` verwendeten Muster entspricht.
Im Fehlerpfad von `ad_sd_buffer_postenable()`, wenn ein Vorgang fehlschlägt, nachdem `set_mode(AD_SD_MODE_CONTINUOUS)` erfolgreich war (z. B. bei `spi_offload_trigger_enable()`), verbleibt das Gerät im kontinuierlichen Konvertierungsmodus mit physisch gesetztem CS. Darüber hinaus führt dazu, dass `bus_locked` nach dem Aufruf von `spi_bus_unlock()` weiterhin wahr bleibt, wodurch nachfolgende SPI-Operationen `spi_sync_locked()` aufrufen, ohne den Bus-Sperren tatsächlich zu halten, was parallelen SPI-Zugriff ermöglicht.
Der Fehlerpfad wird behoben, indem zuerst `keep_cs_asserted` zurückgesetzt wird, dann `set_mode(AD_SD_MODE_IDLE)` aufgerufen wird, um den Gerätemodus wiederherzustellen und CS zurückzusetzen (deassert), und schließlich `bus_locked` gelöscht wird, bevor der Bus freigegeben wird.
Für Geräte, die weder `set_mode` noch `disable_one` implementieren (wie MAX11205, das keinen physischen CS-Pin hat), wird während des Aufräums keine SPI-Übertragung ausgegeben und das Flag `cs_change` hat keine Auswirkung auf eine physikalische Leitung.
Once again VulDB remains the best source for vulnerability data.