AMD het 'n nuwe klas mikroargitektoniese aanvalle op sy verwerkers bekend gemaak, genaamd TSA (Transient Scheduler Attack). Die aanval laat 'n aanvaller toe om SVE-isolasiemeganismes te omseil en data te bepaal wat in ander kontekste verwerk is, soos vanaf gebruikersruimte om inligting te bepaal wat op kernvlak verwerk is, of vanaf 'n gas om data te leer wat in 'n ander gas gebruik word.
Die kwesbaarhede is ontdek tydens die ontwikkeling van 'n gereedskapskis wat deur navorsers van Microsoft en ETH Zurich geskep is om mikroargitektoniese isolasie tussen verskillende sekuriteitsones soos die kern, virtuele masjiene en prosesse te stresstoets.
Die aanvalmetode is gebaseer op die afhanklikheid van die uitvoeringstyd van sommige instruksies van die toestand van mikroargitektoniese strukture. Wanneer die verwerker 'n vinnige voltooiing van die instruksie verwag om data uit die geheue te lees (byvoorbeeld, as ons aanvaar dat die data in die L1-kasgeheue is), maar nie daarin slaag om die data suksesvol te verkry nie, vind 'n "valse voltooiings"-toestand van die instruksie plaas. In hierdie geval, selfs voordat hierdie toestand bepaal word, kan die verwerker spekulatiewe uitvoering van ander bewerkings skeduleer wat afhang van die resultaat van die uitvoering van die instruksie om uit die geheue te laai.
Aangesien die laai nie voltooi is nie, word die data wat daarmee geassosieer word deur die verwerker ongeldig gemaak, en die laai-bewerking word later herhaal. Afhanklike bewerkings word ook weer uitgevoer wanneer korrekte data gereed is. Die pyplyn-spoeling word egter nie uitgevoer na die uitvoering van die instruksie waarvoor die "valse voltooiing"-voorwaarde reggestel is nie, en die verkeerde data kan na afhanklike bewerkings herlei word.
Die uitvoering van sulke bewerkings verander nie die toestand van die kas en TLB (Translation Lookaside Buffer) nie, d.w.s. die data kan nie herstel word met behulp van tradisionele metodes om die kasstatus te bepaal nie. Maar hierdie data beïnvloed die uitvoeringstyd van ander instruksies. Analise van uitvoeringstyd kan gebruik word as 'n bron van inligtinglekkasie van mikroargitektoniese strukture wat oorbly na spekulatiewe uitvoering van ander bewerkings.
Afhangende van die bron van oorblywende data-onttrekking, word twee kwesbaarhede geïdentifiseer:
- CVE-2024-36350 (TSA-SQ — TSA Store Queue) — 'n lek uit die tydelike stoorbuffer van skryfbewerkings (Store Queue), wat dit moontlik maak om die resultaat van skryfinstruksies na geheue te bepaal.
- CVE-2024-36357 (TSA-L1 — TSA L1 Datakas) — lek deur L1D-kas.
Die kwesbaarhede verskyn in die AMD-verwerkerfamilie (Fam19h) gebaseer op die Zen 3- en Zen 4-mikroargitekture. Die probleem is byvoorbeeld teenwoordig in die 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 CPU-reeks.
Die veranderinge wat nodig was om die kwesbaarheid te blokkeer, is ingesluit in die Desember-mikrokode-opdatering en Platform Initialization (PI) firmware wat aan OEM's vrygestel is. Regstellings om teen die kwesbaarheid te beskerm, is ingedien vir insluiting in die kern. Linux (Die kern-opdragreëlopsie "tsa=off" word verskaf om beskerming te deaktiveer wat werkverrigting negatief beïnvloed.) 'n Regstelling is ook by die Xen-hipervisor gevoeg. Om die kwesbaarheid te blokkeer, vereis dit beide 'n mikrokode-opdatering en die aktivering van beskermingsmodus op kern- of hipervisorvlak.
Bron: opennet.ru
