Odebrany

CVE-2026-98610

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ę:

net/sched: sch_hfsc: powiązano klasyfikację przechodzenia przez filtr wewnętrzny z budżetem dryfu

hfsc_classify() stosuje kontrolę poziomu „filtr może wskazywać tylko w dół”.
tylko wtedy, gdy wynik filtru nie zawiera powiązanej klasy. Filtr stworzony za pomocą
flowid pobiera wartość res.class raz w momencie wiązania, więc sprawdzanie nigdy nie jest wykonywane
to podczas klasyfikacji. hfsc_just_levels() może później podnieść poziom klasy
poziom bez ponownego sprawdzania istniejących powiązań, pozostawiając dwa wiązania, które były
każdy legalny w momencie wiązania wskazuje na siebie; następnie spacer klasyfikacyjny
przełącza się pomiędzy dwiema klasami wewnętrznymi w nieskończoność, przytrzymując blokadę qdisc i
BH wyłączone — miękkie blokowanie z pojedynczego pakietu. Utknięte spacery
pies stróżujący:

watchdog: BŁĄD: miękka blokada - procesor nr 3 utknął na 13 s! [ping:444]
RIP: 0010:u32_classify+0x542/0x17f0
...
tcf_classify+0x66/0xa0
hfsc_enqueue+0x166/0xdf0

Ograniczenie przejścia budżetem niezstępujących przeskoków, jedyny sposób a
skonfigurowany spacer może się poruszać bez schodzenia z drzewa klas po osiągnięciu kolejnego poziomu
dryf po czasie wiązania. Budżet kumuluje się na cały spacer i
nie jest celowo resetowany przy skoku zstępującym: łańcuch, który zmienia się a
zjazd z bocznym podskokiem zwróciłby budżet na każdym okrążeniu i nigdy
wycieczka. Zstępujące przeskoki nigdy go nie zmniejszają, tak jest w przypadku głębokich drzew
nie ma to wpływu, a kończący łańcuch boczny nadal klasyfikuje się normalnie.
Upuść pakiet z ostrzeżeniem o ograniczonej szybkości po wyczerpaniu budżetu,
odzwierciedlające połączoną poprawkę HTB.

Jest to kontynuacja zatwierdzenia 729c4896ab82 („net/sched: sch_htb: limit
htb_classify przeskoki filtrów klasy wewnętrznej”), które ograniczały tę samą klasyfikację
pętla po stronie HTB, ale pozostawiła spacer HFSC nieograniczony.

Warunki odtworzenia błędu:
- CONFIG_NET_SCHED, CONFIG_NET_SCH_HFSC, CONFIG_NET_CLS_U32,
CONFIG_LOCKUP_DETECTOR.
- Zbuduj cykl z dwoma legalnymi wiązaniami płynnymi w czasie wiązania i poziomem
dryf: klasa X 1:1 (dziecko korzenia) z dzieckiem liścia 1:10; klasa Y 1:2
(rodzeństwo X) z dziećmi 1:20 i 1:200; przepływ filtra root u32
1:1; filtr na przepływie X 1:2 (dopuszczalne, gdy Y jest liściem); po poziomie Y
wzrasta do 2, filtruj na Y o przepływie 1:1 (wtedy legalne). Wyślij jeden pakiet (ping
na urządzeniu). Nienaprawione jądro: klasyfikuj spiny za pomocą blokady qdisc
trzymany; z softlockup_panic=1 wpada w panikę.
- Dostępny dla nieuprzywilejowanego użytkownika poprzez unshare -Urn (CAP_NET_ADMIN).

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