CVE-2026-99141
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
śledzenie: Napraw awarię w print_graph_function_event()
tracing_set_tracer() przypisuje flagi nowo wybranemu znacznikowi
z:
tr->current_trace_flags = t->flagi? : t->tracer->flagi;
Jeśli nowy moduł śledzący nie definiuje ani flag statycznych, ani domyślnych, np
hwlat, irqsoff lub wakeup, add_tracer() nie ma kopii flag dla poszczególnych instancji
dla niego i oba operandy mają wartość NULL, więc kończy się tr->current_trace_flags
również NULL.
Bufor pierścieniowy nie jest czyszczony podczas przełączania znaczników: jest resetowany
wewnątrz funkcji Tracer_init(), po przypisaniu current_trace_flags.
Jeśli bufor nadal zawiera wpisy funkcji wykresu funkcji z poprzedniego
tracer, wydrukowanie jednego z nich powoduje wyłuskanie wskaźnika NULL. To było
trafiony przez cat tracie podczas testu obciążeniowego ftrace:
BŁĄD: wyłuskiwanie wskaźnika NULL jądra, adres: 0000000000000000
#PF: dostęp do odczytu nadzorcy w trybie jądra
RIP: 0010:print_graph_function_event+0xe/0x20
Zadzwoń do śledzenia:
s_show+0x4d/0x110
seq_read_iter+0x2d4/0x490
seq_read+0x130/0x170
vfs_read+0xb5/0x370
ksys_read+0x6d/0xe0
do_syscall_64+0xbc/0x450
Bufor migawek nie jest w ogóle resetowany, więc można to odtworzyć
bez wyścigu:
echo wykres_funkcji > /sys/kernel/tracing/current_tracer
echo 1 > /sys/kernel/tracing/snapshot
echo hwlat > /sys/kernel/tracing/current_tracer
cat /sys/kernel/tracing/snapshot
Zamiast uczyć o tym każdego użytkownika tr->current_trace_flags
narożna, upewnij się, że nigdy nie ma wartości NULL: gdy nowo wybrany
tracer nie ma żadnych flag, funkcja tracing_set_tracer() powraca do a
statyczne puste no_tracer_flags. run_tracer_selftest() może trafić w to samo
case, więc tam również dodano tę samą opcję rezerwową. Istniejący użytkownicy
już obsługuje opts == NULL, więc te znaczniki zachowują się jak poprzednio.
>_ 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