Společnost AMD odhalila informace o nové třídě mikroarchitektonických útoků na své procesory — TSA (Transient Scheduler Attack). Útok umožňuje útočníkovi obejít mechanismy izolace CPU a zjistit data zpracovávaná v jiných kontextech, například zjistit informace z uživatelského prostoru, které se zpracovávají na úrovni jádra, nebo získat data z hostitelského systému používaná v jiném hostitelském systému.
Zranitelnosti byly odhaleny v průběhu vývoje nástroje vytvořeného výzkumníky z Microsoftu a Švýcarského federálního technologického institutu v Curychu pro stresové testování mikroarchitektonické izolace mezi různými zónami přístupu, jako je jádro, virtuální stroje a procesy.
Metoda útoku je založena na závislosti doby vykonání některých instrukcí na stavu mikroarchitektonických struktur. Když procesor očekává rychlé dokončení instrukce načítání dat z paměti (například se domnívá, že data jsou v L1 cache), ale nepodaří se úspěšně získat data, vzniká stav "falešného dokončení" instrukce (false completion). Procesor může ještě před určením tohoto stavu naplánovat spekulativní provádění dalších operací závislých na výsledcích provedení instrukce načítání z paměti.
Když není načítání dokončeno, procesor považuje s tím spojená data za neplatná a operace načítání je později zopakována. Závislé operace jsou také znovu prováděny, když jsou k dispozici správná data. Přitom není prováděn flush pipeline po dokončení instrukce, pro kterou bylo zaznamenáno "falešné dokončení", a nesprávná data mohou být předána do závislých operací.
Provádění takových operací nemění stav cache a TLB (Translation Lookaside Buffer), tj. data nelze obnovit pomocí tradičních metod pro určení stavu cache. Tyto data však ovlivňují dobu vykonání dalších instrukcí. Analýza doby vykonání může být použita jako zdroj úniku informací z mikroarchitektonických struktur, které zůstaly po spekulativním provádění dalších operací.
V závislosti na zdroji extrakce zbytkových dat byly identifikovány dvě zranitelnosti:
- CVE-2024-36350 (TSA-SQ — TSA Store Queue) — únik z vyrovnávací paměti operací zápisu (Store Queue), což umožňuje určit výsledek provedení instrukcí zápisu do paměti.
- CVE-2024-36357 (TSA-L1 — TSA L1 Data Cache) — únik přes L1D cache.
Zranitelnosti se projevují v rodině procesorů AMD (Fam19h) založených na mikroarchitekturách Zen 3 a Zen 4. Problém se například vyskytuje v sériích CPU 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.
Opravy potřebné k zablokování zranitelnosti jsou součástí prosincové aktualizace mikrokódu a PI firmwaru (Platform Initialization), které byly předány výrobcům OEM. Opravy pro ochranu proti zranitelnosti byly dodány k zahrnutí do jádra Linuxu (k deaktivaci ochrany, která negativně ovlivňuje výkon, je k dispozici volba příkazového řádku jádra „tsa=off“). Oprava byla také přidána do hypervisoru Xen. Pro zablokování zranitelnosti je nutné jak aktualizace mikrokódu, tak aktivace ochranného režimu na úrovni jádra nebo hypervisoru.
Zdroj: opennet.ru
