CVE-2026-97903
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
wyjście: przechowuj odwołanie do thread_pid w proc_flush_pid
Zatwierdź 0a36bad01731 („release_task: zabij niepotrzebny już plik
get/put_pid(thread_pid)") usunąłem odniesienie do proc_flush_pid().
Zakładano, że free_pids(post.pids) na końcu release_task() tak się stanie
utrzymuj thread_pid przy życiu do tego czasu.
To założenie jest błędne. __change_pid() rejestruje tylko odłączony PID
post.pids, gdy pid_has_task() ma wartość false dla każdego PIDTYPE. Jeśli inne zadanie
nadal używa identyfikatora PID wychodzącego zadania jako identyfikatora grupy procesów lub sesji,
__unhash_process() usuwa łącze PIDTYPE_PID wychodzącego zadania, ale pozostawia
PID z post.pids. Dlatego release_task() nie zawiera odniesienia do
to po upuszczeniu tasklist_lock.
Drugie zadanie może następnie usunąć pozostałe łącza PIDTYPE. Jego
free_pids() planuje wywołania opóźnione_put_pid(), a wywołanie zwrotne RCU może zostać zwolnione
PID zanim pierwsza funkcja release_task() osiągnie proc_flush_pid().
Nieuprzywilejowany reproduktor ściga się z funkcją Wait4(-1) z setsid(), aby to wywołać
zamawianie. Zgłoszono trzy z trzech nowych butów KASAN v7.2:
BŁĄD: KASAN: użycie płyty po zwolnieniu w
proc_invalidate_siblings_dcache+0x3e2/0x3f0
Odczytaj rozmiar 8 w zadaniu h7_pid_reaper/1921
Zadzwoń do śledzenia:
proc_invalidate_siblings_dcache
wydanie_zadania
czekaj_rozważ_zadanie
__czekaj
poczekaj
jądro_wait4
Uwolniony przez zadanie 0:
kmem_cache_free
put_pid
opóźniony_put_pid
rcu_core
Ostatni potencjalnie powiązany utwór:
__call_rcu_common
darmowe_pidy
ksys_setsid
KASAN zidentyfikował 144-bajtowy obiekt w pamięci podręcznej pid i zlokalizował błąd
wczytaj 80 bajtów do uwolnionego obiektu, dopasowując pid->i-węzły. Z
wyraźne odniesienie, trzy z trzech świeżych butów ukończone bez KASAN
raport. Równoczesne wywołanie zwrotne RCU porzuciło referencję while
proc_flush_pid() została zabezpieczona, a równoważenie put_pid() wykonało
później ostatni darmowy.
Weź odwołanie, zanim __unhash_process() wyczyści p->thread_pid i zwolni
to po zakończeniu proc_flush_pid().
Sprawdzony odtwarzacz źródłowy jest dostępny prywatnie na życzenie. Nie
kontrolowany odczyt lub zapis, wyciek informacji lub eskalacja uprawnień
twierdził. Główna łatka dotyczy bezpośrednio wersji 6.19.y i nowszych;
Wersja 6.16.y do 6.18.y wymaga backportu dostosowanego do kontekstu.
>_ Referencje
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