CVE-2026-89579
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
bpf: Utwardzanie rozmiaru i indeksowania filtra Blooma w jądrach 32-bitowych
Bloom_map_alloc() ma dwa problemy specyficzne dla wersji 32-bitowej podczas obliczania
bitmapa osiąga przypadek awaryjny U32_MAX.
Najpierw obliczana jest wartość BITS_TO_BYTES(U32_MAX) przy użyciu arytmetyki 32-bitowej. The
dodatek wykonywany przez zawijanie DIV_ROUND_UP, więc mapa przydziela tylko
Obiekt filtra rozkwitu o stałym rozmiarze, zachowując bitset_mask == U32_MAX.
Kolejne aktualizacje mogą następnie zapisywać poza przydzielonym obiektem.
Po drugie, samo ustalenie wielkości alokacji nie jest wystarczające. Kwitnący hasz
to u32, ale set_bit() pobiera długi bit ze znakiem, a x86 test_bit()
ostatecznie podaje indeks do zmiennej_test_bitu(długi, ...). Na wersji 32-bitowej
jądra, skróty w [0x80000000, U32_MAX] stają się zatem bitami ujemnymi
offsety. x86 bt/bts z operandem pamięci interpretuje te przesunięcia względne
do dostarczonej bazy, więc mapa z bitset_mask == U32_MAX może czytać lub
napisz przed Bloom->bitset nawet po przydzieleniu pełnej mapy bitowej 512 MiB.
Zachowaj rezerwę U32_MAX, ale podziel każdy skrót na wskaźnik słowa i an
numer bitu w słowie przed wywołaniem test_bit() lub set_bit(). Bitopy
argument jest wtedy zawsze w [0, BITS_PER_LONG - 1], podczas gdy BIT_WORD(h) nadal
wybiera zamierzone słowo w pełnej bitmapie.
Oblicz rozmiar zestawu bitów z (u64)bitset_mask + 1 przed przejściem do finału
size do bpf_map_area_alloc(). Naprawia to pierwotny niedostateczny przydział i
utrzymuje przydzieloną pamięć spójną z adresowalnym zestawem bitów.
Uwaga dotycząca wykorzystania: lokalna eskalacja uprawnień jest możliwa w 32-bitowym systemie x86
jądro używające błędu niedoboru alokacji z pliku binarnego z CAP_BPF.
>_ 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