CVE-2026-99222
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
klucze: Chroń kontrolę metody odczytu przed usunięciem typu
keyctl_read_key() sprawdza klawisz->typ->czytaj bez trzymania klawisza->sem.
Odniesienie utrzymuje klucz przy życiu, ale nie przypina modułu zawierającego
jego typ. Dlatego pozostały klucz RxRPC można odczytać podczas AF_RXRPC
jest rozładowywany:
Zadanie KEYCTL_READ Rozładowanie modułu i klucz GC
---------------- ------------------------
szukany_klucz_użytkownika()
kontrole uprawnień/posiadania
załaduj klucz->wpisz
af_rxrpc_exit()
wyrejestruj_typ_klucza()
GC: down_write(key->sem)
GC: wpisz ponownie do key_type_dead
GC: up_write(key->sem)
unregister_key_type() zwraca
wolny_moduł()
przeczytaj element członkowski odczytu zapisanego typu
Ostateczny dostęp umożliwia odczytanie zwolnionej pamięci modułu. Wywołanie odczytu w
__keyctl_read_key() jest już chroniona przez klucz->sem, ale wcześniej
sprawdzenie metody znajduje się poza tą sekcją krytyczną.
Przenieś kontrolę metody do __keyctl_read_key(), po key_validate() i
w ramach istniejącego wstrzymania odczytu na klawiszu->sem. Następnie sprawdzenie i wywołanie
używaj tego samego chronionego typu dla zapytań o długość i przy każdej ponownej próbie odczytu.
GC nie może ponownie wpisać klucza, dopóki semafor nie zostanie zwolniony, i wpisz
wyrejestrowanie czeka na przepustkę GC, zanim moduł będzie mógł zostać zwolniony.
Zwróć -EOPNOTSUPP, gdy sprawdzanie poprawności zakończy się pomyślnie, a typ nie zostanie odczytany
metoda. Przed tym wynikiem można teraz przydzielić bufor tymczasowy;
alokacja i kopiowanie do przestrzeni użytkownika pozostają poza semaforem.
>_ Referencje
- https://git.kernel.org/stable/c/1486caee47b4909f52835a957c3293e970113e44
- https://git.kernel.org/stable/c/3edc064069d07e7d37359fcb4d03d3bab15ee3ab
- https://git.kernel.org/stable/c/6a36e2a1a017c51f8a8ad2a094566bad97c46a9b
- https://git.kernel.org/stable/c/cf1af7df80e38bf58bd74c2cccce32fcbd1a596a
- https://git.kernel.org/stable/c/e2a2deda08d91644f5e30c17d267b1cdc5f124b2
- https://git.kernel.org/stable/c/e5f830ae6611cddbfc504c43f14155f60b63206a
- https://git.kernel.org/stable/c/ff11cfed85cbfdd7fe1185ebd18d2c7a8353ad8d
- https://git.kernel.org/stable/c/ff44f1b303aa76a818d898e85c56ed4852c031e2
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