Pagkahuyang sa espekulatibo nga mekanismo sa pagpatuman sa mga processor sa AMD

Ang proyekto sa Grsecurity nagpatik sa mga detalye ug usa ka demonstrasyon sa pamaagi sa pag-atake alang sa usa ka bag-ong kahuyang (CVE-2021-26341) sa mga processor sa AMD nga may kalabotan sa espekulatibo nga pagpatuman sa mga panudlo pagkahuman sa walay kondisyon nga mga operasyon sa unahan. Kung malampuson ang pag-atake, ang pagkahuyang nagtugot sa mga sulud sa arbitraryong mga lugar sa panumduman nga matino. Pananglitan, ang mga tigdukiduki nag-andam usa ka pagpahimulos nga nagtugot kanila sa pagtino sa layout sa address ug pag-bypass sa mekanismo sa pagpanalipod sa KASLR (kernel memory randomization) pinaagi sa pagpatuman sa dili pribilihiyo nga code sa ePBF kernel subsystem. Ang ubang mga senaryo sa pag-atake dili mahimong isalikway nga mahimong mosangpot sa usa ka pagtulo sa mga sulod sa memorya sa kernel.

Ang kahuyang nagtugot kanimo sa paghimo og mga kondisyon diin ang processor, sa panahon sa preemptive execution, espekulatibo nga nagproseso sa instruksiyon human dayon sa jump instruction sa memorya (SLS, Straight Line Speculation). Dugang pa, ang ingon nga pag-optimize dili lamang alang sa mga operator sa paglukso sa kondisyon, apan alang usab sa mga panudlo nga nagpasabut nga direkta nga paglukso nga wala’y kondisyon, sama sa JMP, RET ug CALL. Pagsunod sa walay kondisyon nga mga instruksyon sa paglukso, ang arbitraryong datos nga dili gituyo alang sa pagpatay mahimong ibutang. Human matino nga ang usa ka sanga wala maglangkit sa pagpatuman sa sunod nga instruksiyon, ang processor yanong ibalik ang estado ug ibaliwala ang espekulatibo nga pagpatay, apan ang pagsubay sa pagpatuman sa instruksiyon nagpabilin sa gipaambit nga cache ug anaa alang sa pagtuki gamit ang mga teknik sa pagkuha sa kilid nga channel.

Sama sa pagpahimulos sa kahuyang sa Specter-v1, ang pag-atake nanginahanglan sa presensya sa pipila ka mga han-ay sa mga panudlo (mga gadget) sa kernel nga nagdala sa espekulatibo nga pagpatay. Ang pagbabag sa usa ka kahuyang sa kini nga kaso moabut sa pag-ila sa ingon nga mga gadyet sa code ug pagdugang dugang nga mga panudlo sa kanila nga nagbabag sa espekulatibo nga pagpatay. Ang mga kondisyon alang sa speculative execution mahimo usab nga mabuhat pinaagi sa mga walay pribilehiyo nga mga programa nga nagdagan sa eBPF virtual machine. Aron babagan ang abilidad sa paghimo og mga gadyet gamit ang eBPF, girekomendar nga i-disable ang unprivileged access sa eBPF sa system (β€œsysctl -w kernel.unprivileged_bpf_disabled=1”).

Ang pagkahuyang makaapekto sa mga processor base sa Zen1 ug Zen2 microarchitecture, lakip ang una ug ikaduhang henerasyon sa AMD EPYC ug AMD Ryzen Threadripper nga mga processor, ingon man AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadripper PRO ug APU series processors A. Aron babagan ang speculative execution sa instructions, girekomendar nga tawagan ang INT3 o LFENCE instructions human sa branch operations (RET, JMP, CALL).

Source: opennet.ru

Idugang sa usa ka comment