CVE-2026-90326
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
blk-cgroup: napraw wyścig pomiędzy aktywacją polityki a zniszczeniem blkg
Podczas przełączania harmonogramu IO na urządzeniu blokowym blkcg_activate_policy()
przydziela blkg_policy_data (pd) dla wszystkich blkg dołączonych do kolejki.
Jednakże blkcg_activate_policy() może się ścigać z jednoczesnym usunięciem blkcg,
co prowadzi do problemów z użytkowaniem po zwolnieniu i wycieków pamięci.
Użycie po zwolnieniu ma miejsce w następującym wyścigu:
T1 (blkcg_activate_policy):
- Pomyślnie przydziela pd dla blkg1 (pętla0->kolejka, blkcgA)
- Nie udało się przydzielić pd dla blkg2 (pętla0->kolejka, blkcgB)
- Wprowadza ścieżkę wycofania enomem w celu zwolnienia zasobów blkg1
T2 (usunięcie blkcg):
- blkcgA jest jednocześnie usuwany
- blkg1 zostaje zwolniony poprzez blkg_free_workfn()
- blkg1->pd jest zwolniony
T1 (ciąg dalszy):
- Ścieżka wycofania umożliwia dostęp do blkg1->pd->online po zwolnieniu pd
- Wyzwala użycie po darmowym
Dodatkowo blkg_free_workfn() zwalnia pd przed usunięciem blkg z
q->blkg_list. Pozwala to blkcg_activate_policy() na przydzielenie nowego pd
dla niszczonego bloku, pozostawiając nowo przydzielony pd
nieosiągalny, gdy blok zostanie ostatecznie zwolniony.
Napraw te wyścigi, rozszerzając zasięg blkcg_mutex o serializację
blkcg_activate_policy() wycofywanie i niszczenie blkg, zapewniając pd
cykl życia jest zsynchronizowany z widocznością listy blkg.
>_ Referencje
- https://git.kernel.org/stable/c/083b58373463a6e5ee60ecb135269348f68ad7df
- https://git.kernel.org/stable/c/2cf9f50a38c1839e549a08e22aa35e8d69e2c8fd
- https://git.kernel.org/stable/c/5313d4d41739b0cb63000747c97bb1217ac45f3e
- https://git.kernel.org/stable/c/ac34e655dffa74349d885a43d098115336f53842
- https://git.kernel.org/stable/c/b5dae1cd0d8368b4338430ff93403df67f0b8bcc
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