CVE-2026-98226
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
mm, zamień: napraw kolizję SWAP_USAGE_OFFLIST_BIT z rzeczywistym licznikiem użycia
SWAP_USAGE_OFFLIST_BIT jest osadzony w liczniku użycia si->inuse_pages,
i ma znajdować się powyżej dowolnej wartości, jaką może osiągnąć licznik. Jednak to
jest zdefiniowany na podstawie BITS_PER_TYPE(atomic_t), więc jest to bit 30. W systemie
przy 4 stronach KiB flaga koliduje z licznikiem użycia, gdy już się to zliczy
osiąga 4 TiB.
swap_usage_in_pages() maskuje bit 30, więc zawsze, gdy ma to wartość rzeczywista
ten bit jest ustawiony, każdy wywołujący go odczytuje niski poziom 4 TiB:
* /proc/swaps zaniża wartość Używane przez 4 TiB.
* Surowa liczba masek wynosząca dokładnie 2^30 do zera, więc funkcja try_to_unuse() przyjmuje tę wartość
"jeśli (!swap_usage_in_pages(si)) się powiodło;" wcześniejsze wyjście i zamiana
niszczy urządzenie, gdy strony są nadal wymieniane. Nic w
reszta zamiany przerywa rozbijanie, więc te strony zostaną utracone.
Niezależnie od zamiany, kolizja powoduje również uszkodzenie licznika i pliku
plist. Na urządzeniu będącym w normalnym użyciu, wolny, który pozostawia bit 30 ustawiony w
count powoduje, że funkcja swap_usage_sub() widzi flagę tam, gdzie jest tylko liczba, i
wywołaj funkcję add_to_avail_list(). Czyści bit za pomocą
fetch_and(~SWAP_USAGE_OFFLIST_BIT), pozostawiając przechowywaną liczbę 4 TiB poniżej
prawdziwego i wywołuje plist_add() na urządzeniu, które jest już na liście,
wyłączenie WARN_ON(!plist_node_empty(node)) w plist_add() i połączenie
węzeł po raz drugi.
Zmień definicję SWAP_USAGE_OFFLIST_BIT, na której ma się opierać
zamiast tego atom_long_t. Należy pamiętać, że samo pole licznika użycia ma wartość
tego samego typu, więc jest to nadal ważny bit.
>_ 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