CVE-2026-98789
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
bpf: Napraw obiekty, które utknęły w free_by_rcu_ttrace
do_call_rcu_ttrace() powraca wcześniej, gdy ustawione jest call_rcu_ttrace_in_progress
i pozostawia obiekty w free_by_rcu_ttrace. __free_rcu() zwalnia
Waiting_for_gp_ttrace i usuwa flagę. Stąd obiekty, które
free_bulk() lub __free_by_rcu() dodano podczas wykonywania zadań RCU śledzenia GP
pozostań w free_by_rcu_ttrace do czasu wywołania funkcji free_bulk() lub alloc_bulk()
ponownie ten sam bpf_mem_cache, co może się nigdy nie wydarzyć. Liczba takich
obiekty nie są ograniczone.
Zmień call_rcu_ttrace_in_progress w trzy stany:
0 - bezczynność
1 - __free_rcu() znajduje się w kolejce
2 - __free_rcu() znajduje się w kolejce, a free_by_rcu_ttrace ma więcej obiektów od tego czasu
do_call_rcu_ttrace() ustawia 2. __free_rcu() wykonuje cmpxchg(1 -> 0) i uruchamia się
następnego lekarza rodzinnego, jeśli to się nie powiedzie. Nie może najpierw usunąć flagi i sprawdzić
free_by_rcu_ttrace później, ponieważ bpf_mem_alloc_destroy() zwalnia bpf_mem_cache
bez czekania na wywołania zwrotne RCU, gdy flaga wynosi zero.
Teraz __free_rcu() sama ustawia się w kolejce, więc ta, która nie widziała „opróżniania”, może to zrobić
wykonaj call_rcu_tasks_trace() po rcu_barrier_tasks_trace() w
free_mem_alloc(). Umieść go w kolejce pod rcu_read_lock() i wykonaj synchronize_rcu()
przed barierkami. Dwukrotne wywołanie rcu_barrier_tasks_trace() też działa, ale
tworzenie i niszczenie map skrótów w pętli na wielu procesorach spowalnia do jednego
free_mem_alloc() na lekarza pierwszego kontaktu, a kworkerów gromadzi się coraz więcej.
>_ 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