Kwetsberens yn it spekulative útfieringsmeganisme fan AMD-processors

It Grsecurity-projekt hat details publisearre en in demonstraasje fan 'e oanfalmetoade foar in nije kwetsberens (CVE-2021-26341) yn AMD-processors yn ferbân mei spekulative útfiering fan ynstruksjes nei ûnbedoelde foarút operaasjes. As de oanfal suksesfol is, lit de kwetsberens de ynhâld fan willekeurige ûnthâldgebieten fêststelle. Bygelyks, ûndersikers hawwe in eksploitaasje taret wêrmei't se de adresyndieling kinne bepale en it beskermingsmeganisme fan KASLR (kernel memory randomization) omgean troch unprivilegearre koade út te fieren yn it ePBF-kernelsubsysteem. Oare oanfalssenario's kinne net wurde útsletten dy't liede kinne ta in lek fan ynhâld fan kernelûnthâld.

De kwetsberens kinne jo meitsje betingsten wêryn de prosessor, ûnder preemptive útfiering, spekulatyf ferwurket de ynstruksje fuortendaliks nei de sprong ynstruksje yn it ûnthâld (SLS, Straight Line Speculation). Boppedat wurket sa'n optimisaasje net allinich foar betingsten sprongoperators, mar ek foar ynstruksjes dy't direkte betingstleaze sprong ymplisearje, lykas JMP, RET en CALL. Nei betingstleaze sprongynstruksjes kinne willekeurige gegevens pleatst wurde dy't net bedoeld binne foar útfiering. Nei it fêststellen dat in tûke net belûke útfiering fan de folgjende ynstruksje, de prosessor gewoan rôlet werom de steat en negearret spekulative útfiering, mar it spoar fan ynstruksje útfiering bliuwt yn de dielde cache en is beskikber foar analyse mei help fan side-kanaal opheljen techniken.

Lykas by de eksploitaasje fan 'e Specter-v1-kwetsberens, fereasket de oanfal de oanwêzigens fan bepaalde sekwinsjes fan ynstruksjes (gadgets) yn' e kernel dy't liede ta spekulative útfiering. It blokkearjen fan in kwetsberens yn dit gefal komt del op it identifisearjen fan sokke gadgets yn 'e koade en it tafoegjen fan ekstra ynstruksjes oan har dy't spekulative útfiering blokkearje. Betingsten foar spekulative útfiering kinne ek makke wurde troch unprivileged programma's dy't rinne yn 'e eBPF firtuele masine. Om de mooglikheid te blokkearjen om gadgets te bouwen mei eBPF, wurdt it oanrikkemandearre om unprivileged tagong ta eBPF yn it systeem út te skeakeljen ("sysctl -w kernel.unprivileged_bpf_disabled=1").

De kwetsberens beynfloedet processors basearre op de Zen1 en Zen2 mikroarsjitektuer, ynklusyf de earste en twadde generaasjes fan AMD EPYC en AMD Ryzen Threadripper processors, lykas AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadripper PRO en APU rige processors A. Om blokkearje spekulative útfiering fan ynstruksjes, is it oan te rieden om te neamen INT3 of LFENCE ynstruksjes nei branch operaasjes (RET, JMP, CALL).

Boarne: opennet.ru

Add a comment