Odebrany

CVE-2026-98641

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, arm64: skonfiguruj wskaźnik ramki dla wywołania zwrotnego wyjątku

Program pełniący funkcję granicy wyjątku zapisuje wszystkie rejestry zapisane przez wywoływanego,
więc build_prologue() przyjmuje ścieżkę wyjątku_cb i nigdy nie wywołuje
push_callee_regs(). To jedyne miejsce, w którym działa funkcja find_used_callee_regs(),
i wraz z nim ustawione jest jedyne miejsce ctx->fp_used, więc prolog wywołania zwrotnego
nie emituje

mov x25, sp

który wskazuje BPF_REG_FP na ramkę, na której działa wywołanie zwrotne. x25 trzyma
niezależnie od tego, co zawierało po wywołaniu bpf_throw(). Jeśli rzut nastąpił z
podprogram korzystający z własnego stosu BPF, czyli ramki podprogramu
wskaźnik, a ponieważ podprogram nigdy nie zwraca, nigdy nie przywraca x25
albo.

Dostęp do stosu poprzez BPF_REG_FP jest przepisywany tak, aby był wskaźnikiem stosu
względne, więc te nadal lądują we własnej ramce wywołania zwrotnego. Materializacja
rejestr nie wykonuje: wywołania zwrotnego, które przekazuje adres lokalny
zmienna pomocnikowi przekazuje adres w martwym podprogramie
rama. Adres ten znajduje się już poniżej wskaźnika stosu wywołania zwrotnego i
własny łańcuch wywołań pomocnika pokrywa go, więc pomocnik może nad nim pisać
własny adres zwrotny. 0x1234 poniżej to wartość, o którą poproszono pomocnika
sklep:

komputer: 0x1234
lr: 0x1234
Śledzenie połączeń:
0x1234 (P)
bpf_test_run+0x188/0x3e0
bpf_prog_test_run_skb+0x47c/0x998
__sys_bpf+0xbdc/0xdd8
Panika jądra – brak synchronizacji: Ups: krytyczny wyjątek w przerwaniu

Ustaw ctx->fp_used na ścieżce wywołania zwrotnego wyjątku, aby istniejący kod
dalej w dół ustawia x25 ze wskaźnika stosu. Epilog przywraca to
z obszaru zapisu głównego programu wraz z innymi zapisanymi plikami wywoływanymi
rejestruje się, tak jak to już ma miejsce. x86 ustawia wskaźnik ramki dla
wywołanie zwrotne z argumentu, który jest przekazywany, a powerpc oblicza to
wskaźnik stosu.

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