CVE-2026-97918
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
śledzenie: Cofnij rejestrację, jeśli włączenie wyzwalacza histogramu nie powiedzie się
Zatwierdź 6f86bdeab633 („tracing: Napraw błędną hist z powodu uszkodzenia nazwanych wyzwalaczy
list”) opisał, w jaki sposób wyzwalacz jest zarejestrowany, ale nie w pliku->triggers
zostaje uwolniony, gdy nadal znajduje się na globalnej liście nazwanych_wyzwalaczy, i przeniósł plik
rejestracja została wyłączona, tak że funkcja hist_trigger_enable() następuje natychmiast po niej. Jeden
ścieżka wciąż tam prowadzi. hist_trigger_enable() dodaje wyzwalacz i bierze go
natychmiast wycofaj się, gdy nie można włączyć zdarzenia:
list_add_tail_rcu(&data->lista, &file->wyzwalacze);
aktualizacja_cond_flag(plik);
if (trace_event_trigger_enable_disable(plik, 1) < 0) {
list_del_rcu(&data->lista);
aktualizacja_cond_flag(plik);
gnić--;
}
więc lista w funkcji hist_unregister_trigger() nie pasuje do niczego, test pozostaje
NULL, a ->free() wywołujące del_named_trigger() jest pomijane.
out_unreg przechodzi do out_free, co i tak zwalnia wyzwalacz:
BŁĄD: KASAN: użycie płyty po zwolnieniu w find_named_trigger+0xac/0xc0
Odczytaj rozmiar 8 pod adresem ffff8880091d3160 przez zadanie init/1
find_named_trigger+0xac/0xc0
hist_register_trigger+0xc1/0xa00
event_hist_trigger_parse+0x3146/0x6af0
event_trigger_write+0xce/0x160
Uwolniony przez zadanie 69:
kfree+0x154/0x420
wyzwalacz_kthread_fn+0xfd/0x160
Pozostaw wyzwalacz tam, gdzie hist_unregister_trigger() może go znaleźć i pozwól mu
cofnij rejestrację, która jest jedynym kodem, który wie wszystko
cmd_ops->init() pobiera: nazwany wpis na liście, odwołanie do hist_pad, plik
odniesienie do wyzwalacza, któremu nazwany histogram jest udostępniany i kopiowany
cmd_ops. Łączy także nieudaną funkcję trace_event_trigger_enable_disable(),
którego sm_ref i buforowane odwołanie do zdarzenia w przeciwnym razie pozostają w tyle.
Ponieważ ->free() uwalnia dane wyzwalacza i dla wyzwalacza, który nie jest udostępniany
jego histogram, hist_data wraz z nim, out_unreg nie mogą już do niego dotrzeć
out_free. W przypadku wyzwalacza, który jest współużytkowany, funkcja hist_register_trigger() ma
zniszczył już dane hist_data dzwoniącego, więc przejściem było czytanie
tam również zwolniona jest pamięć.
Przenieś zaznaczenie Enable_timestamps w hist_unregister_trigger() powyżej
->free() z tego samego powodu: hist_data nie przeżywa go, gdy
wyzwalacz, który jest usuwany, jest tym, który jest jego właścicielem.
>_ 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