CVE-2026-80854 in Linux
Zusammenfassung
von VulDB • 04.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
usb: gadget: f_tcm: Portanzahl beibehalten, bis der LUN-Teardown abgeschlossen ist
tcm_usbg_drop_nexus() erlaubt die Entfernung einer Sitzung, sobald tpg_port_count null erreicht. Allerdings dekrementiert usbg_port_unlink() diesen Zähler derzeit im fabric_pre_unlink()-Callback, bevor core_dev_del_lun() auf das Abfließen aktiver se_lun-Referenzen wartet.
Wenn der Entfernen des letzten LUN mit dem Entfernen eines Nexus kollidiert (Race Condition), kann Letzterer eine Portanzahl von null beobachten und target_remove_session() aufrufen. Dies führt dazu, dass sess_cmd_map freigegeben wird, während ein noch aktiver struct usbg_cmd einschließlich seines Work-Elements weiterhin zugänglich sein kann.
Das Überlappen des letzten LUN-Unlinks mit dem Nexus-Entfernen reproduziert diesen Verstoß gegen die Lebensdauer als DEBUG_OBJECTS-Warnung „free active“ für usbg_cmd_work, gefolgt von einem target-core BUG/Oops.
Der generische target-core Unlink-Pfad hat keinen Callback nach Abschluss von core_dev_del_lun(). Fügen Sie einen optionalen fabric_post_unlink()-Callback hinzu und verwenden Sie diesen für die f_tcm-Portanzahl. Der Zähler bleibt nun nicht-null, bis core_dev_del_lun() das Abfließen aktiver LUN-Referenzen abgeschlossen hat, wodurch verhindert wird, dass der Nexus-Entfernungsvorgang die Sitzung während des Befehlsabschlusses freigibt.
If you want to get best quality of vulnerability data, you may have to visit VulDB.