ʻO nā nāwaliwali i ka eBPF hiki ke kāpae i ka pale kaua ʻo Specter 4

Ua ʻike ʻia ʻelua mau mea palupalu i ka kernel Linux e ʻae i ka subsystem eBPF e kāpae i ka pale kaua Specter v4 (SSB, Speculative Store Bypass). Ke hoʻohana nei i kahi polokalamu BPF pono ʻole, hiki i ka mea hoʻouka ke hana i nā kūlana no ka hoʻokō speculative o kekahi mau hana a hoʻoholo i nā ʻike o nā wahi arbitrary o ka hoʻomanaʻo kernel. Escort eBPF subsystems i loko o ka kernel i loaʻa i kahi prototype exploit e hōʻike ana i ka hiki ke hana i nā hoʻouka kaua ma ka hoʻomaʻamaʻa. Ua hoʻopaʻa ʻia nā pilikia ma ke ʻano o nā patch (1, 2) e lilo i ʻāpana o ka hoʻohou kernel Linux e hiki mai ana. ʻAʻole i hoʻokumu ʻia nā mea hou i ka hāʻawi ʻana (Debian, RHEL, SUSE, Arch, Fedora, Ubuntu).

Hoʻokumu ʻia ke ʻano hoʻouka kaua Specter 4 i ka hoʻihoʻi ʻana i ka ʻikepili i hoʻopaʻa ʻia i loko o ka cache processor ma hope o ka hoʻolei ʻana i ka hopena o ka hoʻokō speculative o nā hana i ka wā e hoʻoponopono ai i nā hana kākau a heluhelu ʻana me ka hoʻohana ʻana i ka leka uila. Ke hahai ka hana heluhelu i ka hana kakau (no ka laʻana, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), ua ʻike mua ʻia ka helu helu helu helu ma muli o nā hana like e hana ʻia nei (ua hana ʻia nā hana heluhelu. ʻoi aku ka pinepine a hiki ke hoʻokō ʻia kahi heluhelu mai ka cache) a hiki i ka mea hana ke hana i ka heluhelu ʻana ma mua o ke kākau ʻana me ke kali ʻole i ka helu ʻana o ka indirection offset.

Inā, ma hope o ka helu ʻana i ka offset, ʻike ʻia kahi ʻāpana o nā wahi hoʻomanaʻo no ke kākau ʻana a me ka heluhelu ʻana, e hoʻolei wale ka mea hana i ka hopena heluhelu i loaʻa mua ʻia a hana hou i kēia hana. Hāʻawi kēia hiʻohiʻona i ke aʻo heluhelu e komo i ka waiwai kahiko ma kekahi wahi ʻoiai ʻaʻole i pau ka hana hale kūʻai. Ma hope o ka hoʻokuʻu ʻana i kahi hana noʻonoʻo kūleʻa ʻole, waiho ʻia nā ʻāpana o kāna hoʻokō ʻana i ka cache, a laila hiki ke hoʻohana ʻia kekahi o nā ʻano no ka hoʻoholo ʻana i nā ʻike o ka cache e pili ana i ka nānā ʻana i nā loli i ka manawa komo i ka cache a ʻaʻole i hūnā ʻia. ia.

ʻO ka haʻahaʻa mua (CVE-2021-35477) ma muli o kahi kīnā i ka mīkini hōʻoia papahana BPF. No ka pale ʻana i ka hoʻouka ʻana o Specter 4, hoʻohui ka mea hōʻoia i kahi ʻōlelo aʻo hou ma hope o nā hana hale kūʻai pilikia i ka hoʻomanaʻo, e mālama ana i ka waiwai o ka ʻole e hoʻopau i nā meheu o ka hana mua. Ua manaʻo ʻia he wikiwiki loa ka hana kākau ʻole a hoʻopaʻa i ka hoʻokō speculative, no ka mea, hilinaʻi wale ia i ka mea kuhikuhi i ka pahu waihona BPF. Akā ʻo ka ʻoiaʻiʻo, ua hiki ke hana i nā kūlana ma lalo o ke aʻo ʻana e alakaʻi ana i ka hoʻokō speculative ka manawa e hoʻokō ʻia ma mua o ka hana hale kūʻai preemptive.

ʻO ka lua o ka nāwaliwali (CVE-2021-3455) pili i ka ʻoiaʻiʻo i ka wā e ʻike ʻia ai nā hana mālama hoʻomanaʻo weliweli e ka mea hōʻoia BPF, ʻaʻole i mālama ʻia nā wahi uninitialized o ka waihona BPF, ʻo ka hana kākau mua ʻaʻole i pale ʻia. . Ke alakaʻi nei kēia hiʻohiʻona i ka hiki ke hana i kahi hana heluhelu noʻonoʻo, hilinaʻi i kahi wahi hoʻomanaʻo uninitialized, ma mua o ka hoʻokō ʻana i kahi ʻōlelo aʻo hale kūʻai. Hāʻawi ʻia ka hoʻomanaʻo hou no ka waihona BPF me ka nānā ʻole ʻana i nā mea i loko o ka hoʻomanaʻo i hoʻokaʻawale ʻia, a aia kahi ala e hoʻokele ai i nā mea o ka wahi hoʻomanaʻo a laila e hāʻawi ʻia i ka waihona BPF ma mua o ka hoʻomaka ʻana o ka papahana BPF.

Source: opennet.ru

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