ʻO ka vulnerability i ka mīkini hoʻokō speculative o nā kaʻina hana AMD

Ua paʻi ka papahana Grsecurity i nā kikoʻī a me kahi hōʻike o ke ʻano hoʻouka kaua no kahi nāwaliwali hou (CVE-2021-26341) i nā kaʻina hana AMD e pili ana i ka hoʻokō speculative o nā ʻōlelo aʻo ma hope o ka hana mua ʻole. Inā kūleʻa ka hoʻouka ʻana, hiki i ka nāwaliwali ke hoʻoholo i nā ʻike o nā wahi hoʻomanaʻo arbitrary. No ka laʻana, ua hoʻomākaukau ka poʻe noiʻi i kahi hoʻohana e hiki ai iā lākou ke hoʻoholo i ka hoʻonohonoho ʻana o ka helu wahi a kāpae i ka KASLR (kernel memory randomization) me ka hoʻokō ʻana i ke code unprivileged i loko o ka ePBF kernel subsystem. ʻAʻole hiki ke hoʻokuʻu ʻia nā hiʻohiʻona hoʻouka ʻē aʻe i hiki ke alakaʻi i ka leak o nā mea hoʻomanaʻo kernel.

Hāʻawi ka nāwaliwali iā ʻoe e hana i nā kūlana ma lalo o ke kaʻina hana, i ka wā o ka preemptive execution, speculatively process i ke aʻo ma hope koke o ke aʻo ʻana i ka hoʻomanaʻo (SLS, Straight Line Speculation). Eia kekahi, ʻaʻole hana ia ʻano loiloi wale no nā mea hoʻokele conditional jump, akā no nā ʻōlelo aʻoaʻo e kuhikuhi pololei ana i ka lele ʻole, e like me JMP, RET a me CALL. Ma hope o nā ʻōlelo aʻoaʻo lele ʻole, hiki ke kau ʻia nā ʻikepili kūʻokoʻa ʻaʻole i manaʻo ʻia no ka hoʻokō. Ma hope o ka hoʻoholo ʻana ʻaʻole pili ka lālā i ka hoʻokō ʻana i ke aʻo aʻe, e hoʻihoʻi wale ka mea hana i ka mokuʻāina a nānā ʻole i ka hoʻokō speculative, akā mau ke ʻano o ka hoʻokō ʻana i ke aʻo ʻana i loko o ka huna huna a loaʻa no ka nānā ʻana me ka hoʻohana ʻana i nā ʻenehana hoʻihoʻi ʻaoʻao.

E like me ka hoʻohana ʻana i ka vulnerability Specter-v1, pono ka hoʻouka ʻana i ka hele ʻana o kekahi mau ʻōkuhi o nā ʻōlelo aʻo (nā gadget) i loko o ka kernel e alakaʻi i ka hoʻokō speculative. ʻO ka pale ʻana i kahi nāwaliwali i kēia hihia e iho mai i ka ʻike ʻana i nā hāmeʻa i loko o ke code a me ka hoʻohui ʻana i nā ʻōlelo aʻoaʻo iā lākou e kāohi ana i ka hoʻokō speculative. Hiki ke hana ʻia nā kūlana no ka hoʻokō manaʻo e nā polokalamu pono ʻole e holo ana i ka mīkini virtual eBPF. No ka pale ʻana i ka hiki ke kūkulu i nā hāmeʻa me ka hoʻohana ʻana i ka eBPF, ʻōlelo ʻia e hoʻopau i ke komo pono ʻole i ka eBPF ma ka ʻōnaehana ("sysctl -w kernel.unprivileged_bpf_disabled=1").

Hoʻopilikia ka nāwaliwali i nā kaʻina hana e pili ana i ka microarchitecture Zen1 a me Zen2, me ka mua a me ka lua o nā hanauna o AMD EPYC a me AMD Ryzen Threadripper processors, a me AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadripper PRO a me APU moʻo kaʻina hana A. No ka pale ʻana i ka hoʻokō speculative o nā ʻōlelo aʻo, pono e kāhea i nā ʻōlelo aʻoaʻo INT3 a i ʻole LFENCE ma hope o nā hana lālā (RET, JMP, CALL).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka