Az AMD cég felfedte az új mikroarchitektúrákon alapuló támadások egy új osztályának, a TSA (Transient Scheduler Attack) információit. Ez a támadás lehetővé teszi, hogy a támadó kikerülje a CPU elszigetelési mechanizmusait, és azonosítsa a más kontextusokban feldolgozott adatokat, például a felhasználói térből információkat szerezzen a kernel szintjén, vagy a vendégrendszeren belül más vendégrendszerek által használt adatokat tudjon meg.
A sebezhetőségeket a Microsoft és a Zürichi Műszaki Egyetem kutatói által kifejlesztett eszközprototípus létrehozása során tárták fel, amely a mikroarchitektúrák között lévő különböző hozzáférési zónák, például a kernel, virtuális gépek és folyamatok közötti izoláció stressztesztelésére szolgál.
A támadás módszere azon alapul, hogy egyes utasítások végrehajtási ideje függ a mikroarchitektúrák állapotától. Amikor a processzor gyors befejezést vár egy memóriaolvasási utasításra (például azt feltételezve, hogy az adatok az L1 cache-ben vannak), de nem sikerül az adatokat helyesen megszerezni, a „hamis befejezés” állapota (false completion) lép fel. Ebben az állapotban a processzor még az állapot meghatározása előtt megkezdheti más műveletek spekulatív végrehajtását, amelyek az memóriaolvasási utasítás végrehajtásának eredményétől függenek.
Mivel a betöltés nem zárult le, a hozzá kapcsolódó adatokat a processzor érvénytelennek nyilvánítja, és a betöltési műveletet később ismételjük meg. A függő műveleteket is újra végrehajtják, miután a helyes adatok rendelkezésre állnak. A pipeline flush a végrehajtott utasítás után, amelynél a „hamis befejezés” állapota állt fenn, nem történik meg, így a hibás adatok átirányításra kerülhetnek a függő műveletekbe.
Az ilyen műveletek végrehajtása nem változtatja meg a cache és a TLB (Translation Lookaside Buffer) állapotát, azaz az adatokat nem lehet hagyományos módszerekkel visszaállítani a cache állapotának meghatározására. De ezek az adatok hatással vannak más utasítások végrehajtási idejére. Az időzítések elemzése információszivárgásként használható a mikroarchitektúrákból, amelyek megmaradnak más műveletek spekulatív végrehajtása után.
A maradék adatok kinyerésének forrásától függően két sebezhetőséget emeltek ki:
- CVE-2024-36350 (TSA-SQ — TSA Bolt Queue) — a temporary storage overflow leak in write operations (Store Queue) that allows the determination of the result of write instructions to memory.
- CVE-2024-36357 (TSA-L1 — TSA L1 Data Cache) — leakage through the L1D cache.
The vulnerabilities manifest in the AMD processor family (Fam19h) based on Zen 3 and Zen 4 microarchitectures. For instance, the issue is present in AMD Ryzen 5000/6000/7000/8000 series CPUs, 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, and 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 sent to OEMs. Patches for vulnerability protection have been provided for inclusion in the Linux kernel (to disable protection that negatively affects performance, a command line option 'tsa=off' is available). A fix has also been added to the Xen hypervisor. Both the microcode update and enabling protection mode at the kernel or hypervisor level are required to block the vulnerability.
Forrás: opennet.ru
