ʻO nā mea palupalu i ka subsystem eBPF e ʻae ai i ka hoʻokō code ma ka pae kernel Linux

Ua ʻike ʻia ʻelua mau nāwaliwali hou i loko o ka subsystem eBPF, kahi e hiki ai iā ʻoe ke holo i nā mea lawelawe i loko o ka kernel Linux ma kahi mīkini virtual kūikawā me JIT. Hiki i nā mea palupalu ʻelua ke hoʻokō i kāu code me nā kuleana kernel, ma waho o kahi mīkini virtual eBPF kaʻawale. Ua paʻi ʻia ka ʻike e pili ana i nā pilikia e ka hui Zero Day Initiative, nāna e hoʻokūkū i ka hoʻokūkū Pwn2Own, i kēia makahiki i hōʻike ʻia ai ʻekolu mau hoʻouka ʻana ma Ubuntu Linux i hoʻohana i nā nāwaliwali i ʻike mua ʻole ʻia (inā ʻaʻole i hōʻike ʻia nā nāwaliwali o ka eBPF i kēia mau hoʻouka ʻana) .

  • CVE-2021-3490 - No ka nele o ka 32-bit out-of-bounds checking i ka wā e hana ana i nā hana bitwise AND, OR, a me XOR ma eBPF ALU32. Hiki i ka mea hoʻouka ke hoʻohana i kēia hewa e heluhelu a kākau i ka ʻikepili ma waho o nā palena o ka buffer i hāʻawi ʻia. ʻIke ʻia ka pilikia me nā hana XOR mai ka kernel version 5.7-rc1, a me AND a me OR - e hoʻomaka ana mai 5.10-rc1.
  • CVE-2021-3489 - ʻO ka nāwaliwali ke kumu o ka hewa i ka hoʻokō ʻana i ke apo apo a no ka mea ʻaʻole i nānā ka hana bpf_ringbuf_reserve i ka hiki ke emi ka nui o ka wahi hoʻomanaʻo i hāʻawi ʻia ma mua o ka nui maoli. o ka ringbuf. Hōʻike ka pilikia mai ka hoʻokuʻu ʻana iā 5.8-rc1.

Hiki ke ʻike ʻia ke kūlana o ka patching vulnerabilities i kēia mau ʻaoʻao: Ubuntu, Debian, RHEL, Fedora, SUSE, Arch). Loaʻa ʻia nā hoʻoponopono ma ke ʻano he patches (CVE-2021-3489, CVE-2021-3490). Hiki ke hoʻohana ʻia ka pilikia ma muli o ka hiki ʻana o ka ʻōnaehana eBPF kelepona i ka mea hoʻohana. No ka laʻana, i ka hoʻonohonoho paʻamau i RHEL, pono ka hoʻohana ʻana i ka nāwaliwali i ka mea hoʻohana e loaʻa nā kuleana CAP_SYS_ADMIN.

Ma kahi kaʻawale, hiki iā mākou ke hoʻomaopopo i kahi nāwaliwali ʻē aʻe i ka kernel Linux - CVE-2021-32606, e hiki ai i kahi mea hoʻohana kūloko ke hoʻokiʻekiʻe i ko lākou mau pono i ke kumu kumu. Ua ʻike ʻia ka pilikia mai ka Linux kernel 5.11 a ua hoʻokumu ʻia e kahi kūlana lāhui i ka hoʻokō ʻana i ka protocol CAN ISOTP, kahi e hiki ai ke hoʻololi i nā ʻāpana paʻa socket ma muli o ka nele o ka hoʻonohonoho ʻana i nā laka kūpono i ka hana isotp_setsockopt (). i ka hana ana i ka hae CAN_ISOTP_SF_BROADCAST.

Ma hope o ka pani ʻia ʻana o ke kumu ISOTP, e hoʻomau ʻia ka hoʻopaʻa ʻana i ke kumu loaʻa, hiki ke hoʻomau i ka hoʻohana ʻana i nā hale e pili ana i ke kumu ma hope o ka hoʻokuʻu ʻia ʻana o ka hoʻomanaʻo e pili ana iā lākou (hoʻohana-ma hope-noa ma muli o ke kāhea ʻana i kahi hale isotp_sock. ua hoʻokuʻu ʻia ke kāhea ʻia ʻo isotp_rcv()). Ma o ka manipulation data, hiki iā ʻoe ke hoʻopau i ka pointer i ka hana sk_error_report() a hoʻokō i kāu code ma ka pae kernel.

Source: opennet.ru

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