AMD je otkrio novu klasu mikroarhitektonskih napada na svoje procesore, nazvanu TSA (Transient Scheduler Attack). Napad omogućava napadaču da zaobiđe mehanizme izolacije CPU-a i odredi podatke obrađene u drugim kontekstima, kao što je iz korisničkog prostora kako bi se utvrdile informacije obrađene na nivou kernela ili iz gosta kako bi se saznali podaci korišteni u drugom gostu.
Ranjivosti su otkrivene tokom razvoja alata koji su kreirali istraživači iz Microsofta i ETH Zurich-a za testiranje mikroarhitektonske izolacije između različitih sigurnosnih zona kao što su kernel, virtuelne mašine i procesi.
Metoda napada se zasniva na zavisnosti vremena izvršavanja nekih instrukcija od stanja mikroarhitektonskih struktura. Kada procesor očekuje brzo završavanje instrukcije za čitanje podataka iz memorije (na primjer, pod pretpostavkom da se podaci nalaze u L1 kešu), ali ne uspije uspješno dobiti podatke, dolazi do stanja "lažnog završetka" instrukcije. U ovom slučaju, čak i prije utvrđivanja ovog stanja, procesor može zakazati spekulativno izvršavanje drugih operacija koje zavise od rezultata izvršavanja instrukcije za učitavanje iz memorije.
Budući da učitavanje nije završeno, procesor poništava podatke povezane s njim, a operacija učitavanja se kasnije ponavlja. Zavisne operacije se također ponovo izvršavaju kada su ispravni podaci spremni. Međutim, ispiranje cjevovoda se ne vrši nakon izvršenja instrukcije za koju je ispravljen uslov "lažnog završetka", a netačni podaci se mogu preusmjeriti na zavisne operacije.
Izvršavanje takvih operacija ne mijenja stanje keša i TLB-a (Translation Lookaside Buffer), tj. podaci se ne mogu vratiti korištenjem tradicionalnih metoda određivanja stanja keša. Ali ovi podaci utiču na vrijeme izvršavanja drugih instrukcija. Analiza vremena izvršavanja može se koristiti kao izvor curenja informacija iz mikroarhitektonskih struktura koje ostaju nakon spekulativnog izvršavanja drugih operacija.
U zavisnosti od izvora ekstrakcije rezidualnih podataka, identifikuju se dvije ranjivosti:
- CVE-2024-36350 (TSA-SQ — TSA Store Queue) — curenje iz privremenog bafera za pohranu operacija pisanja (Store Queue), što omogućava određivanje rezultata pisanja instrukcija u memoriju.
- CVE-2024-36357 (TSA-L1 — TSA L1 keš podataka) — curenje kroz L1D keš.
Ranjivosti se pojavljuju u porodici AMD procesora (Fam19h) zasnovanoj na mikroarhitekturama Zen 3 i Zen 4. Na primjer, problem je prisutan u serijama CPU-a AMD Ryzen 5000/6000/7000/8000, 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.
Promjene potrebne za blokiranje ranjivosti uključene su u decembarsko ažuriranje mikrokoda i firmver za inicijalizaciju platforme (PI) izdat proizvođačima originalne opreme (OEM). Zakrpe za zaštitu od ranjivosti poslane su na uključivanje u kernel. Linux (Opcija komandne linije kernela "tsa=off" je obezbijeđena za onemogućavanje zaštite koja negativno utiče na performanse.) Dodata je i ispravka Xen hipervizoru. Blokiranje ranjivosti zahtijeva i ažuriranje mikrokoda i omogućavanje načina zaštite na nivou kernela ili hipervizora.
izvor: opennet.ru
