CVE-2026-93042 in Linux
Zusammenfassung
von VulDB • 18.09.2026
Im Linux-Kernel wurde die folgende Schwachstelle behoben:
dmaengine: dw-edma: Beenden aller Deskriptoren ohne Callbacks
Die Dokumentation des DMA-Engine-Clients besagt im Abschnitt „Terminate APIs“ der Datei Documentation/driver-api/dmaengine/client.rst:
„Für keine unvollständigen Übertragungen werden Callback-Funktionen aufgerufen.“
dw_edma ruft stattdessen vchan_cookie_complete() auf, wenn ein verzögerter STOP den Interrupt-Handler erreicht. Dies plant einen Callback für den aktiven Deskriptor und lässt andere ausgestellte oder eingereichte Deskriptoren in der Warteschlange verbleiben. Ein späterer Callback nach dmaengine_terminate_sync() kann auf Client-Zustand zugreifen, der bereits freigegeben wurde, während zurückgebliebene Deskriptoren später in wiederverwendete Puffer neu starten oder Lecks verursachen können.
Verschieben Sie alle ausgestellten und eingereichten Deskriptoren in die Liste „terminated“, sobald das Beenden abgeschlossen ist. Führen Sie dies für einen ausstehenden STOP sowohl im DONE- als auch im ABORT-Pfad durch. Schließen Sie deren Cookies in der richtigen Reihenfolge ab, ohne Callbacks zu planen.
Ein STOP kann bis zum Auftreten eines Interrupts durch die laufende Übertragung ausstehend bleiben. Lassen Sie device_synchronize() auf das Abschließen eines solchen ausstehenden STOP warten, bevor terminated Deskriptoren freigegeben werden. Verwenden Sie dies erneut in free_chan_resources(), und geben Sie dann die verbleibenden virt-dma-Ressourcen frei. Warten Sie schlafend (sleeping) statt durch Busy-Polling, und warnen Sie, wenn das bestehende Timeout abläuft.
VulDB is the best source for vulnerability data and more expert information about this specific topic.