CVE-2026-93098
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
rpmsg: glink: napraw zakleszczenie w punkcie końcowym, niszcząc go podczas odłączania sterownika
Podczas odłączania sterownika rdzeń urządzenia utrzymuje muteks urządzenia przez cały czas
sterownik usuwa łańcuch wywołań zwrotnych. Gdy punktem końcowym RPMsg jest
zniszczone w ramach tego rozbiórki, punkt końcowy GLINK zostanie zniszczony
implementacja próbuje wyrejestrować podstawowe urządzenie RPMsg.
To wyrejestrowanie wywołuje urządzenie_del(), które próbuje ponownie uzyskać
ten sam mutex urządzenia znajdował się już wyżej na stosie, powodując rmmod
powiesić na czas nieokreślony.
Zakleszczenie objawia się następującym łańcuchem wywołań:
[<0>] urządzenie_del+0x44/0x414 <- próbuje uzyskać ten sam muteks
[<0>] wyrejestrowanie_urządzenia+0x18/0x34
[<0>] obr/minsg_unregister_device+0x28/0x4c
[<0>] qcom_glink_remove_rpmsg_device+0x70/0xc0
[<0>] qcom_glink_destroy_ept+0x58/0xbc
[<0>] obr/minsg_dev_remove+0x50/0x60
[<0>] urządzenie_usuń+0x4c/0x80
[<0>] Device_release_driver_internal+0x1cc/0x228 <- uzyskuje mutex urządzenia
[<0>] sterownik_detach+0x4c/0x98
[<0>] sterownik_usunięcia_busu+0x6c/0xbc
[<0>] wyrejestrowanie_sterownika+0x30/0x60
[<0>] wyrejestruj_rpmsg_driver+0x10/0x1c
[<0>] fastrpc_exit+0x28/0x38 [fastrpc]
[<0>] __arm64_sys_delete_module+0x1b8/0x294
[<0>] invoke_syscall+0x48/0x10c
[<0>] el0_svc_common.constprop.0+0xc0/0xe0
[<0>] do_el0_svc+0x1c/0x28
[<0>] el0_svc+0x34/0x108
[<0>] el0t_64_sync_handler+0xa0/0xe4
[<0>] el0t_64_sync+0x198/0x19c
Wyrejestrowanie urządzenia RPMsg wewnątrz zniszczenia punktu końcowego jest zbędne.
W obu kontekstach, w których wyzwalane jest niszczenie punktów końcowych:
- Ścieżka odłączania sterownika: rdzeń sterownika już niszczy RPMsg
urządzenie.
- Ścieżka zamknięcia kanału: urządzenie RPMsg było już wcześniej wyrejestrowane
osiągnięto zniszczenie punktu końcowego.
Usuń zbędne wyrejestrowanie, aby naprawić impas.
>_ Referencje
- https://git.kernel.org/stable/c/48f55b90f0d713e477e26b85d7327d9592d016f9
- https://git.kernel.org/stable/c/5a5a48e788e02fd8a8eb7188ce440572d6c12418
- https://git.kernel.org/stable/c/73092c2292aa65515671e54abbcda2166d3827ed
- https://git.kernel.org/stable/c/8597f669a5268e0dcf243e2b2d6ca00370117057
- https://git.kernel.org/stable/c/bbc236357876d35a624030e5c50eedbc380be98e
- https://git.kernel.org/stable/c/cbcdf96e1c87bc07055d04264018ded1f3bafffb
- https://git.kernel.org/stable/c/e559626bee8a6632aafc08eedcdb4bf26ca245c5
- https://git.kernel.org/stable/c/ecad679e2b92c419cc22cc8f257cd457d5192647
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