CVE-2026-99226
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
klucze: Unikaj wyłuskiwania konta właściciela podczas wyszukiwania nazwanego zestawu kluczy
Nazwane wyszukiwanie pęku kluczy musi przechowywać pamięć zawierającą UID właściciela
żyje poprzez kontrolę mapowania przestrzeni nazw. find_keyring_by_name()
czyta keyring->user->uid w obszarze keyring_name_lock, ale ta blokada chroni
wpis i przydział nazwy pęku kluczy, a nie jego oddzielny użytkownik_klucza.
Nazwane połączenie sesji z kluczem może nakładać się na uprzywilejowany KEYCTL_CHOWN
inny procesor. Jeśli brelok zawiera ostatnie odniesienie do swojej starej dynamiki
key_user i przeniesienie własności powiedzie się, następująca kolejność jest następująca
możliwe:
Nazwany dołączeniem do Chowna
find_keyring_by_name() keyctl_chown_key()
read_lock(nazwa_breloka_blokada) down_write(key->sem)
załaduj stary brelok->użytkownik
zamień klucz->użytkownik i klucz->uid
up_write(klawisz->sem)
klucz_put(klucz)
key_user_put(stary użytkownik): bezpłatny
przeczytaj starego użytkownika->uid
read_unlock(nazwa_breloka_blokada)
Chown nie bierze ani keyring_name_lock, ani key_session_mutex, więc może
zwolnij stare konto pomiędzy ładowaniem wskaźnika a odczytem UID. The
lookup następnie odczytuje zwolnioną pamięć, mimo że sam brelok jest żywy.
Użyj keyring->uid do sprawdzenia mapowania. key_alloc() inicjuje to
wbudowany identyfikator UID właściciela i funkcja keyctl_chown_key() aktualizują go w przypadku chown.
Istniejąca blokada nazw zachowuje przydzielony zbiór kluczy
czeku, więc wyszukiwanie nie zależy już od czasu istnienia konta. To
pasuje również do identyfikatora UID właściciela używanego podczas sprawdzania uprawnień.
Raport KASAN jak poniżej:
BŁĄD: KASAN: użycie płyty po zwolnieniu w find_keyring_by_name+0x577/0x5d0
Odczytaj rozmiar 4 pod adresem ffff8881128ae2ec za pomocą zadania keycase/500
>_ Referencje
- https://git.kernel.org/stable/c/0b865fa477d94ac96c26848aab1fd176397de3f6
- https://git.kernel.org/stable/c/40b12b93ae4ab9e22c3d571e9b09fd08afad53f6
- https://git.kernel.org/stable/c/5c6a9512887a6cc694d594d9c0b57c0841d215b5
- https://git.kernel.org/stable/c/6763329f673d261641c79212abf773af77b2c922
- https://git.kernel.org/stable/c/77249d4b1bb5ad43552b7023c4a0978937aa7a56
- https://git.kernel.org/stable/c/aa03c8fb4334f14d218020f7431debf2b7766865
- https://git.kernel.org/stable/c/b0830a26e2c3008a6e21863126b4a0e68b2761cd
- https://git.kernel.org/stable/c/c9664f780f861dd9f11f120c7a03ed0993671ebb
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