Udhaifu katika utaratibu wa utekelezaji wa maagizo ya kubahatisha ya wasindikaji wa AMD

Mradi wa Grsecurity umechapisha maelezo na onyesho la mbinu ya kushambulia kwa uwezekano mpya (CVE-2021-26341) katika vichakataji vya AMD vinavyohusiana na utekelezaji wa maagizo ya kubahatisha baada ya shughuli za kuruka mbele bila masharti. Katika kesi ya mashambulizi ya mafanikio, mazingira magumu inaruhusu kuamua yaliyomo ya maeneo ya kiholela ya kumbukumbu. Kwa mfano, watafiti wametayarisha matumizi ambayo hukuruhusu kubainisha mpangilio wa anwani na kupita utaratibu wa ulinzi wa KASLR (kusasisha kumbukumbu ya kernel) kupitia utekelezaji wa msimbo usio salama katika mfumo mdogo wa kernel wa ePBF. Matukio mengine ya shambulio ambayo yanaweza kuvuja yaliyomo kwenye kumbukumbu ya kernel hayajatengwa.

Athari hii inakuruhusu kuunda hali ambayo kichakataji, wakati wa utekelezaji wa kubahatisha, kitachakata kwa kubahatisha maagizo kufuatia maagizo ya kuruka kwenye kumbukumbu (SLS, Ukadiriaji wa Mstari ulio Nyooka). Wakati huo huo, uboreshaji kama huo haufanyi kazi tu kwa waendeshaji wa kuruka kwa masharti, lakini pia kwa maagizo ambayo yanamaanisha kuruka moja kwa moja bila masharti, kama vile JMP, RET na CALL. Maagizo ya tawi yasiyo na masharti yanaweza kufuatwa na data kiholela isiyokusudiwa kutekelezwa. Baada ya kuamua kuwa tawi haimaanishi utekelezaji wa maagizo yanayofuata, processor inarudisha serikali nyuma na haizingatii utekelezaji wa kubahatisha, lakini athari ya utekelezaji wa maagizo inabaki kwenye kashe ya jumla na inapatikana kwa uchambuzi. kwa kutumia njia za urejeshaji wa idhaa ya kando.

Kama ilivyo kwa utumiaji wa athari ya Specter-v1, shambulio linahitaji uwepo katika kiini cha mfuatano fulani wa maagizo (vifaa) ambayo husababisha utekelezaji wa kubahatisha. Katika kesi hii, kuzuia athari kunatokana na kutambua vifaa kama hivyo kwenye msimbo na kuongeza maagizo ya ziada ambayo huzuia utekelezaji wa kubahatisha. Masharti ya utekelezaji wa kubahatisha pia yanaweza kuundwa kwa kutumia programu zisizo za upendeleo zinazoendeshwa katika mashine pepe ya eBPF. Ili kuzuia uwezo wa kuunda vifaa kwa kutumia eBPF, inashauriwa kuzima ufikiaji usio na haki kwa eBPF kwenye mfumo ("sysctl -w kernel.unprivileged_bpf_disabled=1").

Udhaifu huathiri vichakataji kulingana na usanifu mdogo wa Zen1 na Zen2, ikijumuisha kizazi cha kwanza na cha pili cha vichakataji vya AMD EPYC na AMD Ryzen Threadripper, pamoja na AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadripper. Mfululizo wa PRO na APU A. Ili kuzuia utekelezaji wa maagizo ya kubahatisha, inashauriwa kupiga simu INT3 au maagizo ya LFENCE baada ya shughuli za tawi (RET, JMP, CALL).

Chanzo: opennet.ru

Kuongeza maoni