Nā mea palupalu i ka subsystem eBPF o ka Linux kernel

Ua ʻike ʻia kahi vulnerability (CVE-2021-29154) i loko o ka subsystem eBPF, kahi e hiki ai iā ʻoe ke holo i nā mea lawelawe no ka huli ʻana, ka nānā ʻana i ka hana o nā subsystems a me ka hoʻokele ʻana i nā kaʻa, i hana ʻia i loko o ka kernel Linux i kahi mīkini virtual kūikawā me JIT, kahi e hiki ai i kahi. mea hoʻohana kūloko e hoʻokō i kā lākou code ma ka pae kernel. Hōʻike ʻia ka pilikia i ka hoʻokuʻu ʻana o 5.11.12 (inclusive) a ʻaʻole i hoʻopaʻa ʻia i nā māhele (Debian, Ubuntu, RHEL, Fedora, SUSE, Arch). Loaʻa ka hoʻoponopono ma ke ʻano he patch.

Wahi a nā mea noiʻi i ʻike i ka nāwaliwali, hiki iā lākou ke hoʻomohala i kahi prototype hana o ka hoʻohana ʻana no nā ʻōnaehana 32- a me 64-bit x86, hiki ke hoʻohana ʻia e kahi mea hoʻohana pono ʻole. Eia naʻe, ʻike ʻo Red Hat e pili ana ka paʻakikī o ka pilikia inā hiki i ka mea hoʻohana ke kelepona pūnaewele eBPF. No ka laʻana, ma RHEL a me ka hapa nui o nā māhele Linux ʻē aʻe i ka hoʻonohonoho paʻamau, hiki ke hoʻohana ʻia ka nāwaliwali inā hiki ke BPF JIT a loaʻa i ka mea hoʻohana nā kuleana CAP_SYS_ADMIN. Ma ke ʻano he hana, ʻōlelo ʻia e hoʻopau i ka BPF JIT me ka hoʻohana ʻana i ke kauoha: echo 0 > /proc/sys/net/core/bpf_jit_enable

ʻO ka pilikia ma muli o ka hewa i ka helu ʻana i ka offset no nā ʻōlelo aʻoaʻo lālā i ka wā o ke kaʻina hana helu mīkini o ka JIT compiler. ʻO ka mea kūikawā, i ka wā e hana ai i nā ʻōlelo aʻoaʻo lālā, ʻaʻole ia e noʻonoʻo e loli paha ka offset ma hope o ka hele ʻana i ka pae optimization. Hiki ke hoʻohana ʻia kēia hemahema no ka hoʻopuka ʻana i nā code mīkini anomali a hoʻokō iā ia ma ka pae kernel.

He mea nui ia ʻaʻole kēia wale nō ka nāwaliwali o ka subsystem eBPF i kēia manawa. I ka hopena o Malaki, ua ʻike ʻia ʻelua mau mea palupalu i loko o ka kernel (CVE-2020-27170, CVE-2020-27171), hiki ke hoʻohana i ka eBPF e kāpae i ka pale ʻana i nā nāwaliwali o ka papa Specter, e ʻae ai i ka hoʻoholo ʻana i nā mea o ka hoʻomanaʻo kernel. ma muli o ka hana ʻana i nā kūlana no ka hoʻokō ʻana i kekahi mau hana. Pono ka hoʻouka ʻana o Spectre i kahi ʻano o nā kauoha i loko o ke code privilege e alakaʻi i ka hoʻokō speculative o nā ʻōlelo aʻo. I loko o ka eBPF, ua ʻike ʻia kekahi mau ala e hoʻopuka ai i kēlā mau ʻōlelo aʻo ma o ka hoʻoponopono ʻana me nā polokalamu BPF i hoʻouna ʻia no ka hoʻokō.

Hoʻokumu ʻia ka nāwaliwali o CVE-2020-27170 ma muli o ka manipulation pointer i ka BPF verifier e kumu i nā hana noʻonoʻo e komo i kahi wahi ma waho o nā palena pale. ʻO ka vulnerability CVE-2020-27171 ma muli o ka hewa integer underflow i ka wā e hana ana me nā kuhikuhi, e alakaʻi ana i ke komo ʻana i ka ʻikepili ma waho o ka buffer. Ua hoʻopaʻa ʻia kēia mau pilikia ma nā hoʻokuʻu kernel 5.11.8, 5.10.25, 5.4.107, 4.19.182 a me 4.14.227, a ua hoʻokomo pū ʻia i loko o nā mea hou kernel no ka hapa nui o nā hoʻolaha Linux. Ua hoʻomākaukau nā mea noiʻi i kahi prototype exploit e hiki ai i kahi mea hoʻohana pono ʻole ke unuhi i ka ʻikepili mai ka hoʻomanaʻo kernel.

Source: opennet.ru

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