CVE-2022-48941 in Linux
Zusammenfassung
von VulDB • 30.05.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
ice: Behebung eines parallelen Resets und der Entfernung von VFs
Der Commit c503e63200c6 („ice: Beenden der Verarbeitung von VF-Nachrichten während des Teardowns") führte eine Treiber-Zustandsflagge namens ICE_VF_DEINIT_IN_PROGRESS ein, die dazu gedacht ist, einige Probleme bei der parallelen Verarbeitung von Nachrichten von VFs während des Herunterfahrens der VFs zu verhindern.
Diese Änderung wurde durch Abstürze motiviert, die beim schnellen nacheinander durchgeführten Herunterfahren und Wiederhochfahren von VFs auftraten.
Es stellte sich heraus, dass die Korrektur tatsächlich Probleme im VF-Treiber verursacht, da der PF (Physical Function) während der .remove-Routine des VF keine Nachrichten mehr von diesem beantwortet. Dies führt dazu, dass der VF seinen DMA-Speicher möglicherweise entfernt, bevor der PF die Geräte-Warteschlangen heruntergefahren hat.
Darüber hinaus löst die Korrektur die Parallelitätsprobleme im ice-Treiber nicht tatsächlich. Es ist möglich, dass ein VF einen Reset initiiert, kurz bevor der ice-Treiber die VFs entfernt. Dies kann dazu führen, dass die remove-Aufgabe parallel zum Reset des VF ausgeführt wird. Dies führt zu ähnlichen Speicherkorruptionen und Panics, die angeblich durch diesen Commit behoben wurden.
Behoben wird diese Parallelität an der Wurzel, indem sowohl die Reset- als auch die Entfernungsroutinen durch die vorhandene VF cfg_lock geschützt werden. Dies stellt sicher, dass ein VF nicht entfernt werden kann, während noch kritische Aufgaben wie eine virtchnl-Nachricht oder ein Reset ausgeführt werden.
Diese Änderung der Synchronisierung behebt auch die ursprüngliche Ursache, die zuvor durch den Commit c503e63200c6 („ice: Beenden der Verarbeitung von VF-Nachrichten während des Teardowns") behoben wurde, sodass dieser einfach rückgängig gemacht werden kann.
Beachten Sie, dass ich diese beiden Änderungen zusammen belassen habe, da ein einfaches Rückgängigmachen des ursprünglichen Commits den Treiber anfälliger für schwerwiegendere Race Conditions machen würde.
If you want to get best quality of vulnerability data, you may have to visit VulDB.