Odebrany

CVE-2026-98613

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

W jądrze Linuksa usunięto następującą lukę:

bpf: Ograniczona głębokość własności poprzez lokalne kptrs i pierwiastki wykresów

Obiekty przydzielone programowi mogą być właścicielami innych obiektów lokalnych poprzez odwołanie
kptr. bpf_obj_free_fields() podąża za tymi wskaźnikami
__bpf_obj_drop_impl() synchronicznie, przed zwolnieniem pamięci obiektowej
poprzez RCU. Dlatego lokalny typ kptr samoodnoszący się do siebie pozwala na arbitralnie
głębokie łańcuchy obiektów, a upuszczenie głowy może wyczerpać stos jądra.
Długie łańcuchy typu acyklicznego mają ten sam problem.

btf_check_and_fixup_fields() nadal zakłada, że kptrs, do których się odwołuje, wskazują tylko
typy jądra i sprawdza własność tylko poprzez katalogi główne i rbtree. Jego
istniejąca reguła jest wystarczająca dla cykli składających się wyłącznie z wykresów: cel każdego wykresu
krawędź musi zawierać węzeł, więc każdy typ w cyklu ma zarówno pierwiastek, jak i a
węzeł. Reguła odrzuca taki typ posiadający inny root, łamiąc każdy
cykl. Ogranicza także łańcuchy zawierające tylko wykresy do trzech typów lub dwóch, jeśli jest to pierwszy
typ zawiera węzeł i konserwatywnie odrzuca dłuższe łańcuchy acykliczne.
Brakujące krawędzie lokalnego kptr, a nie pominięty cykl tylko wykresu, to:
błąd wprowadzony przez obsługę bpf_kptr_xchg() w lokalnym kptrs.

Zastąp to ograniczenie jednym wykresem obejmującym proces ograniczonej własności
korzenie i lokalne odniesienia kptrs. Uruchom go po zapisaniu wszystkich rekordów BTF
naprawione, odrzuć cykle i ścieżki głębsze niż osiem typów zapisów,
i buforuj głębokość sufiksu każdego typu, sprawdzając go z pozostałymi
budżet. Pozwala to również na odrzucenie dłuższych układów acyklicznych zawierających wyłącznie wykresy
według starej zasady; odpowiednio zaktualizują swoje istniejące testy BTF.

Zachowaj powiązanie niezależne od MAX_CALL_FRAMES, ponieważ niszczenie rekurencyjne
może działać poniżej łańcucha wywołań BPF. Zwykły lokalny pointee bez specjalnego pola
metadane dodają tylko końcowy, niepowtarzający się spadek. Niebędące właścicielami kptrs i
kptrs jądra-BTF nie korzystają z lokalnych rekordów i pozostają poza
chodzić. Uwzględnij także lokalne krawędzie percpu-kptr, chociaż alokacja percpu
obiekty ze specjalnymi polami są obecnie zabronione, więc można to rozluźnić
ograniczenie nie może ominąć ograniczenia własności.

btf_check_and_fixup_fields() kontynuuje inicjalizację graph_root.value_rec,
w tym dla oddzielnie przydzielonych rekordów map. Stosunki własnościowe
należą do niezmiennego programu BTF i wymagają sprawdzenia tylko w czasie ładowania BTF.

>_ 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