CVE-2026-93275
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
perf/x86/intel/pt: Napraw stop/start bez aktualizacji
Jeśli funkcja pt_event_stop() zostanie wywołana bez flagi PERF_EF_UPDATE, wówczas
perf_aux_output_end() nie jest wywoływana. Kolejne wywołanie pt_event_start()
ponownie wywoła funkcję perf_aux_output_begin(), co narusza regułę
zagnieżdżanie i wyzwala OSTRZEŻENIE w perf_aux_output_begin().
Pierwotnie funkcja pt_event_stop() nigdy nie była wywoływana bez PERF_EF_UPDATE,
ponieważ jedyne ścieżki kodu, które to umożliwiają, to przepełnienie zdarzeń i Intel PT
tego nie robi.
Jednakże wprowadzenie ograniczania grupowego poprzez zatwierdzenie 9734e25fbf5ae
(„perf: Napraw logikę przepustnicy dla grupy”) oznaczało, że zdarzenie Intel PT
można by ograniczyć, gdyby stanowił część grupy. Ograniczanie wywołań PMU
->stop() / ->start() wywołania zwrotne bez flag.
Przykładem jest próbkowanie obszaru AUX. Następujące polecenia
uderz w problem:
echo 10000 > /proc/sys/kernel/perf_event_max_sample_rate
perf record -F32000 --aux-sample -e '{intel_pt//u,cycles:u}' \
-- bash -c 'dla i w `sekwencji 1 100000`; czyń prawdę; zrobione
Użyj PERF_HES_UPTODATE, aby śledzić, czy perf_aux_output_begin() i
perf_aux_output_end() są zrównoważone. Wyczyszczony bit PERF_HES_UPTODATE
wskazuje, że kontekst wyjścia AUX jest nadal otwarty.
Zmień odpowiednio pt_event_start() / pt_event_stop() tak, aby początek/koniec
zachowaj równowagę:
- W trybie innym niż migawka stop() zawsze zamyka bufor (bufor może
zabrakło miejsca, a rozliczenie odbywa się poprzez aktualizację), więc
następna funkcja start() otwiera nową, jak poprzednio.
- W trybie migawki/nadpisywania funkcja stop() bez PERF_EF_UPDATE pozostawia plik
bufor otwarty, aby pt_event_snapshot_aux() mógł nadal z niego kopiować,
i start() następnie ponownie włączają śledzenie zamiast wywoływania
perf_aux_output_begin() ponownie.
Zauważ, że pt_event_del() wywołuje pt_event_stop() z ustawioną flagą PERF_EF_UPDATE
(zgodnie z wymaganiami dokumentacji), więc ostatnie wezwanie do
perf_aux_output_end() jest zapewnione.
>_ 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