CVE-2026-97620
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
drm/xe: Opróżnij pamięć podręczną portu danych L1 bez typu LSC po wsadach rcs/ccs
emit_render_cache_flush() ustawia PIPE_Control0_HDC_PIPELINE_FLUSH na
opróżnij pamięć podręczną danych L2/HDC przed sygnalizacją ogrodzenia, ale nigdy tego nie robi
żąda opróżnienia pamięci podręcznej LSC bez typu L1 za pośrednictwem pliku „Untyped
Bit włączenia opróżniania pamięci podręcznej portu danych w PIPE_Control DWord0[11].
Zgodnie ze specyfikacją Bspec w trybie rurociągu 3D udokumentowane jest HDC Pipeline Flush
również opróżnij/unieważnij niewpisaną pamięć podręczną L1, ale tylko w zależności od tego, jak
HDC_CHICKEN0[13:11] jest zaprogramowane. Zaczynając od MTL, to sprzęgło
między opróżnianiem potoku HDC a opróżnianiem pamięci podręcznej L1 bez typu nie jest już więcej
obowiązuje w praktyce niezależnie od tego, jak zaprogramowany jest HDC_CHICKEN0, tzw
poleganie na nim nie jest bezpieczne na nowszych platformach, takich jak BMG. Vulkan Mesy
sterownik (anv) założył, że jądro opróżnia obie pamięci podręczne pomiędzy
zgłoszeń i powodowały uszkodzenia widoczne dla użytkowników w aplikacjach takich jak Llama.cpp
z powodu tej luki; teraz działa wokół tego, opróżniając obie pamięci podręczne
ponownie z przestrzeni użytkownika na końcu każdego bufora poleceń.
Poprawność pomiędzy zgłoszeniami w tej samej kolejce zależy od przestrzeni użytkownika
odpowiedzialność i należy do Mesa, a nie do jądra. Jednak dla
bezpieczeństwa, musimy upewnić się, że nieaktualne dane nie mogą wyciekać przez nietypowany L1
pamięć podręczna portu danych po odzyskaniu lub eksmitowaniu pamięci, co wymaga
KMD, aby ją opróżnić przed zwolnieniem pamięci do ponownego użycia.
Przed MTL można było zaprogramować HDC_CHICKEN0 (tak jak już to zrobiono w przypadku
DG2 przez Wa_22010960976/Wa_14013347512), aby niezawodnie utrzymać rurociąg HDC
Flush połączony z nietypowanym opróżnianiem pamięci podręcznej L1, więc te platformy są
nienaruszone. Własny sterownik anv Mesy odkrył, że na MTL HW
rozłączyłem oba niezależnie od sposobu zaprogramowania HDC_CHICKEN0,
i nie mógł przywrócić starego zachowania nawet poprzez spisanie rejestru
ręcznie; zobacz Mesa commit 7c2ff46a4fc3 („anv: nie zapobiegaj wpisywaniu L1
opróżnianie pamięci podręcznej w trybie 3D”). Jądro nie może niezawodnie zażądać opróżnienia
z CS na MTL, więc ogranicz nowy bit PIPE_Control do
GRAPHICS_VERx100 >= 2000 (Xe2 i nowsze), gdzie można na nim polegać.
Jawnie ustaw PIPE_Control0_UNTYPED_DATAPORT_CACHE_FLUSH razem
z PIPE_Control0_HDC_PIPELINE_FLUSH w emit_render_cache_flush() włączone
Xe2 i nowsze, więc pamięć podręczna danych L1 jest znana przed wyczyszczeniem pamięci
dopuszczone do ponownego użycia, bez uzależnienia od nieudokumentowanych
zachowanie HDC_CHICKEN0 specyficzne dla platformy.
Bspec: 56551
(wiśnia wybrana z zatwierdzenia 434514b6fe731e873808297c268fc52cdf4a1ce6)
>_ 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