Podjetje AMD je razkrilo informacije o novi vrsti mikroarhitekturnih napadov na svoje procesorje – TSA (Transient Scheduler Attack). Napad omogoča napadalcu, da zaobide mehanizme izolacije CPU in določi podatke, ki se obdelujejo v drugih kontekstih, na primer, da iz uporabniškega prostora določi informacije, ki se obdelujejo na ravni jedra, ali iz gostujočega sistema pridobi podatke, ki jih uporablja drug gostujoči sistem.
Ranljivosti so bile odkrite med razvojem orodja, ki so ga ustvarili raziskovalci iz Microsofta in Švicarske višje tehnične šole v Zürichu, za stresno testiranje mikroarhitekturne izolacije med različnimi območji dostopnih meja, kot so jedro, virtualne naprave in procesi.
Metoda napada temelji na odvisnosti časa izvajanja nekaterih navodil od stanja mikroarhitekturnih struktur. Ko procesor pričakuje hitro dokončanje navodila za branje podatkov iz pomnilnika (na primer, domnevo, da so podatki v L1 predpomnilniku), a ne uspe pridobiti podatkov, pride do stanja „napačnega dokončanja“ navodila (false completion). Procesor lahko še pred določitvijo tega stanja načrtuje spekulativno izvrševanje drugih operacij, ki so odvisne od rezultata izvajanja navodila za nalaganje iz pomnilnika.
Ker nalaganje ni bilo dokončano, se povezani podatki priznajo za neveljavne s strani procesorja, operacija nalaganja pa se kasneje ponovno izvede. Odvisne operacije se prav tako ponovno izvajajo, ko so pravilni podatki na voljo. Pri tem se po izvedbi navodila, za katero je bilo zabeleženo stanje „napačnega dokončanja“, ne izvede čiščenje cevi (pipeline flush), kar lahko privede do preusmeritve neveljavnih podatkov v odvisne operacije.
Izvajanje takšnih operacij ne spremeni stanja predpomnilnika in TLB (Translation Lookaside Buffer), torej podatki ne morejo biti obnovljeni z običajnimi metodami za določanje stanja predpomnilnika. Vendar pa ti podatki vplivajo na čas izvajanja drugih navodil. Analiza časa izvajanja se lahko uporablja kot vir uhajanja informacij iz mikroarhitekturnih struktur, ki ostanejo po spekulativnem izvajanju drugih operacij.
Glede na vir pridobivanja preostalih podatkov so opredeljene dve ranljivosti:
- CVE-2024-36350 (TSA-SQ — TSA Store Queue) — buffer overflow leak from the Store Queue, allowing for the determination of the results of memory write instructions.
- CVE-2024-36357 (TSA-L1 — TSA L1 Data Cache) — leak through the L1D cache.
Vulnerabilities manifest in the AMD processor family (Fam19h) based on Zen 3 and Zen 4 microarchitectures. For example, the issue is present in the AMD Ryzen 5000/6000/7000/8000 series, AMD EPYC Milan/Milan-X/Genoa/Genoa-X/Bergamo/Siena, AMD Instinct MI300A, AMD Ryzen Threadripper PRO 7000 WX, AMD EPYC Embedded 7003/8004/9004/97X4, AMD Ryzen Embedded 5000/7000/V3000.
The necessary changes to block the vulnerabilities are included in the December microcode and PI firmware (Platform Initialization) updates provided to OEM manufacturers. Patches to protect against the vulnerability have been delivered for inclusion in the Linux kernel (a command line option 'tsa=off' is available to disable protection, which negatively affects performance). A fix has also been added to the Xen hypervisor. To block the vulnerability, both the microcode update and the activation of protection mode at the kernel or hypervisor level are required.
Izvor: opennet.ru
