Odebrany

CVE-2026-98104

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: cls_u32: napraw zduplikowany uchwyt, gdy pula identyfikatorów węzłów zostanie wyczerpana

gen_new_kid() powraca do zwracania wartości maksymalnej (htid | 0xFFF), gdy oba
idr_alloc_u32() są pełne, zamiast zgłaszać błąd.
u32_change() ufa tej wartości i wstawia nowy węzeł z uchwytem
który już istnieje w tabeli mieszającej, łamiąc niepowtarzalność uchwytu
w przestrzeni identyfikatorów węzłów tabeli.

Uchwyt nigdy nie był zarezerwowany w ht->handle_idr, więc każdy późniejszy błąd
ścieżka, która wykonuje idr_remove(&ht->handle_idr, handle) usuwa
rezerwacja innego, aktywnego węzła, który następnie jest ponownie wykorzystywany – jeden
nie udało się dodać związków do dalszych duplikatów.

Limit 4095 dotyczy per (tabela, segment) — ht->handle_idr dotyczy skrótu
table, a zakres pochodzi z htid (bucketid), więc tabela z
dzielnik 256 może legalnie pomieścić 256*4095 węzłów.

Pomocnik rodzeństwa gen_new_htid() ma tę samą cichą awarię w paśmie:
zwraca 0, gdy pula uchwytów tp_c (1..0x7FF) jest pełna, oraz
u32_init() publikuje główną tablicę mieszającą z uchwytem 0 bez
sprawdzanie. Dwie tabele główne z aliasem uchwytu 0 w u32_lookup_ht(),
zezwalanie na dodawanie/wyszukiwanie/usuwanie węzła cross-tcf_proto. Dodaj to samo
sprawdź wyczerpanie, które ścieżka dzielnika już ma.

Zwróć błąd, aby u32_change() nie zadziałało z ENOSPC/ENOMEM, gdy
Miejsce na identyfikator węzła zostało wyczerpane, dlatego funkcja u32_init() kończy się niepowodzeniem przy -ENOMEM
gdy przestrzeń identyfikatora tablicy mieszającej zostanie wyczerpana. Treść wiadomości
odróżnia wyczerpanie puli (-ENOSPC) od alokacji przejściowej
awaria (-ENOMEM).

Warunki odtworzenia błędu:
- CONFIG_NET_SCHED=y, CONFIG_CLS_U32=y (lub =m z załadowanym modułem)
- Utwórz clsact qdisc na urządzeniu, a następnie dodaj filtry 4095 u32
automatycznie wygenerowane uchwyty do wypełnienia przestrzeni identyfikatora węzła dla skrótu głównego
stół (pojedyncze wiadro). Filtr automatycznej obsługi nr 4096 dodaje wyzwalacze
zduplikowany uchwyt (ponownie użyty fh 800::fff). Osiągalny na poziomie 2
(cofnij udostępnianie -Urn, lokalna przestrzeń nazw CAP_NET_ADMIN).
- Dla gen_new_htid: utwórz 2047 wpisów proto u32 w tym samym bloku
aby wypełnić pulę uchwytów tp_c, a następnie utwórz jeszcze jedną. Tabela korzeni
pobiera uchwyt 0 i aliasy z innymi tabelami głównymi z uchwytem 0.

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