ʻO ke kūlana lāhui i ka Linux kernel garbage collector e hiki ke alakaʻi i ka piʻi ʻana o ka pono

ʻO Jann Horn mai ka hui Google Project Zero, ka mea i ʻike mua i ka Specter a me Meltdown vulnerabilities, ua paʻi i kahi ʻenehana no ka hoʻohana ʻana i kahi nāwaliwali (CVE-2021-4083) i ka ʻohi ʻōpala kernel Linux. Ma muli o ke kūlana lāhui i ka hoʻomaʻemaʻe ʻana i nā mea wehewehe faila ma nā kumu unix a hiki i ka mea hoʻohana pono ʻole ke hoʻokō i kā lākou code ma ka pae kernel.

He mea hoihoi ka pilikia no ka mea, ua liʻiliʻi loa ka puka makani i ka wā e hiki mai ai ka lāhui e hana i nā hana maoli, akā ua hōʻike ka mea kākau o ke aʻo ʻana hiki i kēlā mau nāwaliwali kānalua ke lilo i kumu o nā hoʻouka maoli inā loaʻa ka mea hana hoʻohana. nā mākau kūpono a me ka manawa. Ua hōʻike ʻo Yann Horn pehea, me ke kōkua o nā manipulations filigree, hiki iā ʻoe ke hōʻemi i ke kūlana lāhui e kū ana i ke kāhea ʻana i ka pili () a me ka fget () hana i ka manawa like i loko o ka hoʻohana pono ʻole-ma hope o ka manuahi a loaʻa i ke komo ʻana i kahi ʻikepili i hoʻokuʻu ʻia. hale i loko o ke kī.

Loaʻa kahi kūlana lāhui i ka wā o ka pani ʻana i kahi wehewehe faila i ke kāhea ʻana iā close() a me fget() i ka manawa like. Hiki ke kāhea ʻia e pani () ma mua o ka hoʻokō ʻia ʻana o fget (), e huikau i ka ʻōpala ʻōpala no ka mea, e like me ka helu ʻana, ʻaʻole loaʻa ka waihona i nā kuhikuhi waho, akā e hoʻopili mau ʻia i ka faila wehewehe, ʻo ia hoʻi. E noʻonoʻo ana ka mea ʻohi ʻōpala he loaʻa iā ia ke komo kūʻokoʻa i ka hale, akā ʻo ka mea ʻoiaʻiʻo, no ka manawa pōkole, ʻo ke koena o ke komo ʻana i ka papa wehewehe faila e kuhikuhi mau i ka hoʻokuʻu ʻia ʻana o ka hale.

No ka hoʻonui ʻana i ka hiki ke komo i kahi kūlana lāhui, ua hoʻohana ʻia kekahi mau hoʻopunipuni, i hiki ai ke hoʻonui i ka probability o ka kūleʻa o ka hoʻohana ʻana i ka 30% i ka wā e hoʻokomo ai i nā optimizations kikoʻī kikoʻī. No ka laʻana, e hoʻonui i ka manawa o ke komo ʻana i kahi hale me nā mea wehewehe faila e nā haneli nanosekona, ua hoʻokuʻu ʻia ka ʻikepili mai ka cache processor ma o ka hoʻoheheʻe ʻana i ka cache me ka hana ma luna o kekahi kumu CPU, i hiki ai ke kiʻi hou i ka hale mai ka hoʻomanaʻo ma mua o ka. ka huna huna CPU wikiwiki.

ʻO ka lua o ka hiʻohiʻona nui, ʻo ia ka hoʻohana ʻana i nā interrupts i hoʻokumu ʻia e ka mīkini mīkini e hoʻonui ai i ka manawa kūlana heihei. Ua koho ʻia ka manawa i mea e puhi ai ka mea nāna e hoʻopau i ka wā i loaʻa ai kahi kūlana heihei a hoʻopau i ka hoʻokō ʻana i ke code no kekahi manawa. No ka hoʻopaneʻe hou ʻana i ka hoʻihoʻi ʻana o ka mana, ua hana ʻia ma kahi o 50 tausani mau helu i loko o ka kali kali me ka hoʻohana ʻana i ka epoll, kahi e pono ai ke ʻimi ʻana ma o ka mea nāna e hoʻopau.

Ua hōʻike ʻia ka ʻenehana no ka hoʻohana ʻana i ka nāwaliwali ma hope o 90 mau lā i hōʻike ʻole ʻia. ʻIke ʻia ka pilikia mai ka kernel 2.6.32 a hoʻopaʻa ʻia i ka hoʻomaka ʻana o Dekemaba. Ua hoʻokomo ʻia ka hoʻoponopono i loko o ka kernel 5.16 a ua hoʻoili ʻia i nā lālā LTS o ka kernel a me nā pūʻolo kernel i hoʻolako ʻia i nā māhele. ʻIke ʻia ua ʻike ʻia ka nāwaliwali i ka wā o ka nānā ʻana i kahi pilikia like CVE-2021-0920, e hōʻike ana iā ia iho i ka ʻohi ʻōpala i ka wā e hana ai i ka hae MSG_PEEK.

Source: opennet.ru

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