CVE-2026-97943
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
x86/mm/pat: Uzyskaj blokadę zapisu init_mm przy zwijaniu, aby uniknąć UAF
x86 implementuje modyfikację atrybutów strony za pomocą strony zmiany
Mechanizm atrybutów (CPA).
Śledzi właściwości zakresów, takie jak tryb pamięci podręcznej, na stronie x86
atrybuty i w ramach tej logiki manipuluje tabelami stron jądra.
Od zatwierdzenia:
41d88484c71c („x86/mm/pat: przywróć duże strony ROX po fragmentacji”)
można zwinąć zakresy wpisów tabeli stron jądra
ogromne wpisy w tablicy stron stanowią część tej logiki.
W ramach tego zwinięcia zwalniane są tabele stron, które zostały zwinięte
wpisy, na które wcześniej wskazywałeś, i robi to bez żadnych odpowiednich blokad
jest utrzymywane w celu wykluczenia równoczesnych operacji przeszukiwania tabeli stron jądra.
Jedynym sposobem uzyskania tego kodu jest określenie CPA_COLLAPSE i
jest to ustawiane tylko w set_memory_rox() poprzez:
set_memory_rox()
-> zmień_stronę_attr_set_clr()
-> cpa_flush()
-> cpa_collapse_large_pages()
Znani użytkownicy tego narzędzia to excmem i BPF podczas manipulacji plikami wykonywalnymi
mapowania.
Jest to jednak problematyczne w przypadku ptdump, ponieważ porusza się on po zakresach, do których nie należy
i tym samym istnieje ryzyko, że tabele stron uwolnione pod spodem będą wolne od użycia
to.
Ponadto możliwe są jednoczesne operacje zwijania CPA, które również mogą
powodować wyścigi.
Rozwiąż problem, uzyskując blokadę zapisu mmap na init_mm w całym pliku
cała operacja.
Bezpiecznie jest zdobyć blokadę uśpienia, ponieważ wzywają ją wszyscy dzwoniący
set_memory_rox() z kontekstu procesu i w każdym razie
zmiana_strony_attr_set_clr() wywołuje funkcję vm_unmap_alias(), która ostatecznie przyjmuje
mutex, uniemożliwiając tutaj kontekst atomowy.
>_ 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