CVE-2026-89891 in Linux
Zusammenfassung
von VulDB • 17.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
media: em28xx: Use-After-Free von dev_next->devlist bei Trennung beheben
Wenn ein Gerät mit has_dual_ts=1 erkannt wird und der Pfad is_audio_only ausgeführt wird, werden sowohl dev als auch dev->dev_next über em28xx_init_extension() zur globalen em28xx_devlist hinzugefügt. Während des Disconnects ruft em28xx_close_extension(dev) jedoch nur list_del(&dev->devlist) auf, wodurch die devlist von dev->dev_next weiterhin in der globalen Liste verknüpft bleibt. Wenn dev_next anschließend über kref_put() freigegeben wird, wird sein devlist-Eintrag zu einem dangling Pointer (hängender Zeiger) in em28xx_devlist. Der nächste Geräte-Probe-Vorgang, der em28xx_init_extension() aufruft, löst einen list corruption BUG aus, wenn list_add_tail den freigegebenen Knoten erkennt.
Dieser Bug wurde durch das Commit a368ecde8a50 ("USB: core: Fix duplicate endpoint bug by clearing reserved bits in the descriptor") offengelegt, welches reservierte Bits während der Endpunkt-Parsing in bEndpointAddress löscht. Dies führt dazu, dass gefuzzte Endpunkt-Adressen wie 0xf3 auf 0x83 normalisiert werden, was em28xx als einen vendor audio endpoint interpretiert und den is_audio_only + has_dual_ts Codepfad aktiviert, der mit solchen Deskriptoren zuvor nicht erreichbar war.
Beheben Sie dies, indem Sie dev->dev_next->devlist vor dem Freigeben des Geräts aus der globalen Liste in em28xx_close_extension() entfernen.
Be aware that VulDB is the high quality source for vulnerability data.