CVE-2026-89891
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
media: em28xx: naprawiono opcję użycia po zwolnieniu dev_next->devlist po rozłączeniu
Gdy sondowane jest urządzenie z has_dual_ts=1 i ścieżka is_audio_only
jest zajęte, zarówno dev, jak i dev->dev_next są dodawane do pliku global
em28xx_devlist poprzez em28xx_init_extension(). Jednakże podczas rozłączania
em28xx_close_extension(dev) wywołuje tylko list_del(&dev->devlist), opuszczając
dev->dev_next->devlist nadal znajduje się na liście globalnej. Kiedy jest dev_next
następnie zwolniony przez kref_put(), jego wpis na liście devlist staje się zawieszony
wskaźnik w em28xx_devlist. Następna sonda urządzenia, która wywołuje
em28xx_init_extension() wyzwala BŁĄD uszkodzenia listy, gdy list_add_tail
wykrywa uwolniony węzeł.
Ten błąd został ujawniony przez zatwierdzenie a368ecde8a50 („USB: rdzeń: napraw duplikat
błąd punktu końcowego poprzez wyczyszczenie zarezerwowanych bitów w deskryptorze”), który zostanie usunięty
zarezerwowane bity w bEndpointAddress podczas analizowania punktu końcowego. To powoduje
rozmyte adresy punktów końcowych, takie jak 0xf3, należy znormalizować do 0x83, co
em28xx interpretuje jako punkt końcowy audio dostawcy, umożliwiając
is_audio_only + ścieżka kodu has_dual_ts, która była wcześniej nieosiągalna
z takimi deskryptorami.
Napraw to, usuwając dev->dev_next->devlist z listy globalnej w
em28xx_close_extension() przed zwolnieniem urządzenia.
>_ Referencje
- https://git.kernel.org/stable/c/0782807552b6aff41b4656c6c9076a3231d3e79d
- https://git.kernel.org/stable/c/16cb1ee17e093175b4d9ae33202f68e5b108cca2
- https://git.kernel.org/stable/c/1ed575b1991f68569eb589b7747d3bc26aa6a8a2
- https://git.kernel.org/stable/c/20aacd87550be297dc39a3f9532dcfff91586510
- https://git.kernel.org/stable/c/20c2c65f3d9f7c278dc9750531d3201ac8bf78b7
- https://git.kernel.org/stable/c/826915b6b65e2d3251e7248ea54289a22d748c84
- https://git.kernel.org/stable/c/da4b07da6281e39ce4c01e1227e036f3bf600e14
- https://git.kernel.org/stable/c/f61720346fdcc1a2deec59a2f6cbb0cc20d1dc18
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org