Ọnọdụ agbụrụ dị na Linux kernel mkpofu mkpofu nke nwere ike bute mmụba ihe ùgwù

Jann Horn sitere na ndị otu Google Project Zero, bụ onye mara ọkwa adịghị ike Specter na Meltdown, bipụtara usoro maka iji adịghị ike (CVE-2021-4083) na Linux kernel mkpofu mkpofu. Ọdịmma ahụ bụ n'ihi ọnọdụ agbụrụ mgbe ị na-ehicha ndị na-akọwa faịlụ na sockets unix ma nwee ike na-enye onye ọrụ na-enweghị ohere ohere ime koodu ha na ọkwa kernel.

Nsogbu a bụ ihe na-adọrọ mmasị n'ihi na windo oge nke ọnọdụ agbụrụ ahụ na-eme atụmatụ na ọ dị ntakịrị iji mepụta ezi nrigbu, ma onye edemede nke ọmụmụ ahụ gosiri na ọbụna ndị dị otú ahụ na-enwe obi abụọ adịghị ike na mbụ nwere ike ịghọ isi iyi nke mwakpo n'ezie ma ọ bụrụ na onye okike na-erigbu nwere. nkà na oge dị mkpa. Yann Horn gosipụtara otú, site n'enyemaka nke nhazi filigree, ị nwere ike belata ọnọdụ agbụrụ nke na-eme mgbe ị na-akpọ ọrụ nso () na fget() n'otu oge n'ime ihe nhụsianya na-enweghị ihe ọ bụla ma nweta ohere ịnweta data a tọhapụrụ ugbu a. Ọdịdị n'ime kernel.

Ọnọdụ agbụrụ na-eme n'oge usoro imechi nkọwa faịlụ mgbe ị na-akpọ nso () na fget() n'otu oge. Oku imechi() nwere ike ime tupu emee fget(), nke ga-agbagwoju onye na-anakọta ihe mkpofu n'ihi na, dị ka refcount si kwuo, nhazi faịlụ agaghị enwe ntụaka mpụga, mana ọ ga-anọgide na-ejikọta ya na onye na-akọwa faịlụ, ya bụ. Onye na-anakọta ihe mkpofu ga-eche na ọ nwere ohere pụrụ iche na nhazi ahụ, ma n'eziokwu, maka oge dị mkpirikpi, ntinye fọdụrụ na tebụl nkọwa faịlụ ka ga-arụtụ aka na nhazi ahụ na-atọhapụ.

Iji mee ka ohere nke ịbanye n'ọsọ agbụrụ, a na-eji ọtụtụ aghụghọ eme ihe, nke mere ka o kwe omume ịbawanye ihe ịga nke ọma nke nrigbu na 30% mgbe ị na-ewebata nhazi nke usoro. Dịka ọmụmaatụ, iji bulie oge iji nweta ihe owuwu nwere ndị na-akọwa faịlụ site na ọtụtụ narị nanoseconds, ewepụrụ data na cache processor site na ịkwanye cache na ọrụ na isi CPU ọzọ, nke mere ka o kwe omume iweghachite ihe owuwu ahụ na ebe nchekwa karịa site na. ngwa ngwa CPU cache.

Akụkụ nke abụọ dị mkpa bụ iji nkwụsịtụ nke ngụ oge ngwaike mepụtara iji mee ka oge ọnọdụ agbụrụ dịkwuo elu. A na-ahọrọ oge ahụ ka onye na-ahụ maka nkwụsịtụ wee gbaa ọkụ mgbe ọnọdụ agbụrụ mere ma kwụsị njedebe nke koodu ahụ ruo oge ụfọdụ. Iji n'ihu na-egbu oge nloghachi nke njikwa, ihe dị ka puku 50 ndenye na nchere na-eji epoll, nke chọrọ ịchọ site na nkwụsịtụ njikwa.

Ekpughere usoro maka iji adịghị ike ahụ eme ihe mgbe ụbọchị 90 na-enweghị ngosi. Nsogbu a pụtara kemgbe kernel 2.6.32 ma dozie ya na mbido Disemba. Etinyere ndozi ahụ na kernel 5.16 ma bufee ya na ngalaba LTS nke kernel na ngwugwu kernel ewepụtara na nkesa. Ọ bụ ihe kwesịrị ịrịba ama na achọpụtara adịghị ike ahụ n'oge nyocha nke nsogbu yiri nke CVE-2021-0920, nke na-egosipụta onwe ya na mkpofu ihe mgbe ị na-edozi ọkọlọtọ MSG_PEEK.

isi: opennet.ru

Tinye a comment