adịghị ike na Linux kernel nke na-enye ohere ka emebie faịlụ naanị ọgụgụ

Achọpụtala ihe adịghị ike na Linux kernel (CVE-2022-0847) nke na-enye ohere ka edegharịa ọdịnaya nke cache ibe maka faịlụ ọ bụla, gụnyere ndị nọ na ọnọdụ ọgụgụ naanị, meghere na ọkọlọtọ O_RDONLY, ma ọ bụ dị na sistemụ faịlụ. etinyere na ọnọdụ ọgụgụ naanị. N'okwu bara uru, enwere ike iji adịghị ike ahụ tinye koodu n'ime usoro aka ike ma ọ bụ data mebiri emebi na faịlụ mepere emepe. Dịka ọmụmaatụ, ịnwere ike ịgbanwe ọdịnaya nke faịlụ ikike_keys maka usoro sshd. Ihe nlere nke nrigbu ahụ dị maka nnwale.

Akpọrọ nsogbu ahụ aha Dirty Pipe, dị ka adịghị ike dị oke egwu Dirty COW chọpụtara na 2016. A na-achọpụta na n'ihe gbasara ọkwa ize ndụ, Dirty Pipe dị n'otu ọkwa ahụ dị ka Dirty COW, ma ọ dị mfe ịrụ ọrụ. Achọpụtara adịghị ike ahụ n'oge nyocha nke mkpesa banyere nrụrụ aka oge nke faịlụ ebudatara na netwọkụ na sistemụ nbudata faịlụ abịakọrọ site na sava log (nrụrụ aka 37 n'ime ọnwa 3 na sistemu arụrụ arụ), nkwadebe nke ejiri splice () arụ ọrụ. na ọkpọkọ akpọghị aha.

Ọdịmma ahụ na-egosi malite na Linux kernel 5.8, ewepụtara na Ọgọst 2020, ya bụ. dị na Debian 11, mana ọ naghị emetụta kernel base na Ubuntu 20.04 LTS. RHEL 8.x na openSUSE/SUSE 15 kernels na-adabere na alaka ochie, ma ọ ga-ekwe omume na mgbanwe na-akpata nsogbu ahụ alaghachila n'ime ha (enweghị data ọ bụla). Ị nwere ike soro mbipụta mmelite ngwugwu na nkesa na ibe ndị a: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Atụpụtara ndozi maka adịghị ike na mwepụta 5.16.11, 5.15.25 na 5.10.102. A na-etinyekwa ndozi ahụ na kernel eji na ikpo okwu gam akporo.

A na-akpata adịghị ike ahụ site na enweghị mmalite nke uru "buf-> flags" na koodu ọrụ copy_page_to_iter_pipe () na push_pipe (), n'agbanyeghị na ebe nchekwa anaghị ekpochapụ mgbe ị na-ekenye usoro na n'oge ụfọdụ manipulations na. ọkpọkọ akpọghị aha, uru sitere na ọrụ ọzọ. N'iji njirimara a, onye ọrụ mpaghara na-enweghị ihe ọ bụla nwere ike nweta ọdịdị PIPE_BUF_FLAG_CAN_MERGE uru na ọkọlọtọ, nke na-enye gị ohere ịhazigharị data na cache ibe site na ịdepụta data ọhụrụ na ọkpọkọ a na-akwadoghị aha.

Maka mbuso agha, faịlụ a ga-agụ ga-agụrịrị, ebe ọ bụ na anaghị enyocha ikike ịnweta mgbe ị na-ede ọkpọkọ, enwere ike ịme nnọchi na cache ibe maka faịlụ ndị dị na nkebi etinyere naanị ịgụ (dịka ọmụmaatụ, maka faịlụ c CD-). ROM). Mgbe dochie ozi dị na cache ibe, mgbe ị na-agụ data sitere na faịlụ, usoro ahụ agaghị enweta data n'ezie, kama data dochie anya.

Arụ ọrụ na-agbadata imepụta ọwa enweghị aha wee mejupụta ya na data aka ike iji hụ na edobere ọkọlọtọ PIPE_BUF_FLAG_CAN_MERGE n'ụdị mgbanaka niile metụtara ya. Na-esote, a na-agụ data ahụ site na ọwa ahụ, mana ọkọlọtọ ka edobere n'ụdị usoro pipe_buffer n'ụdị mgbanaka pipe_inode_info. A na-akpọ oku splice() ka ọ gụọ data sitere na faịlụ ebumnuche n'ime ọkpọkọ akpọghị aha, malite na nkwụsị nke achọrọ. Mgbe ị na-ede data na ọkpọkọ a na-akpọghị aha, n'ihi na edobere ọkọlọtọ PIPE_BUF_FLAG_CAN_MERGE, a ga-edegharị data dị na cache ibe kama imepụta ihe atụ ọhụrụ nke usoro pipe_buffer.

isi: opennet.ru

Tinye a comment