Te whakaraeraetanga i roto i te pata Linux e tuku ana i nga konae panui-anake kia kino

Kua kitea he whakaraeraetanga i roto i te kernel Linux (CVE-2022-0847) e taea ai te tuhirua i nga ihirangi o te keteroki wharangi mo nga konae katoa, tae atu ki era kei te aratau panui-anake, i whakatuwheratia me te haki O_RDONLY, kei runga ranei i nga punaha konae. whakairihia ki te aratau panui-anake. I roto i nga tikanga whaitake, ka taea te whakaraeraetanga ki te wero i te waehere ki roto i nga tikanga whakahaere, i nga raraunga kino ranei i roto i nga konae tuwhera. Hei tauira, ka taea e koe te huri i nga ihirangi o te konae_keys whakamana mo te tukanga sshd. Kei te waatea te tauira o te mahi hei whakamatautau.

Ko te raruraru kua whakaingoatia te Dirty Pipe, he rite ki te whakaraeraetanga tino kino Dirty COW i kitea i te tau 2016. E ai ki nga korero mo te taumata morearea, he rite tonu te taumata o te Paipa Dirty ki te Dirty COW, engari he maamaa ake te whakahaere. I kitea te whakaraeraetanga i te wa e tātarihia ana nga amuamu mo te pirau o ia wa o nga konae kua tangohia mai i runga i te whatunga i roto i te punaha tango i nga konae kua kopaki mai i te tūmau rangitaki (37 nga pirau i roto i te 3 marama i runga i te punaha utaina), ko te whakaritenga i whakamahia te mahi splice() me nga paipa kore ingoa.

Ka puta te whakaraeraetanga mai i te Linux kernel 5.8, i tukuna i Akuhata 2020, ara. kei roto i Debian 11, engari kaore e pa ki te kakano turanga i Ubuntu 20.04 LTS. Ko nga kakano RHEL 8.x me openSUSE/SUSE 15 i te tuatahi i runga i nga manga tawhito, engari tera pea ko te huringa i puta ai te raru i whakahokia ki roto i a raatau (kaore ano he raraunga tika). Ka taea e koe te whai i te whakaputanga o nga whakahōutanga mōkihi i roto i nga tohatoha ki enei wharangi: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. He whakatika mo te whakaraeraetanga i whakaarohia i roto i nga putanga 5.16.11, 5.15.25 me 5.10.102. Ko te whakatika kei roto ano hoki i te kernel e whakamahia ana i te papanga Android.

Ko te whakaraeraetanga na te kore o te arawhitinga o te uara "buf->flags" i roto i te waehere o nga mahi copy_page_to_iter_pipe() me push_pipe(), ahakoa te mea kaore te mahara i whakawāteahia i te wa e tohatoha ana i te hanganga me etahi mahi maminga. paipa kore ingoa, he uara mai i tetahi atu mahi. Ma te whakamahi i tenei waahanga, ka taea e tetahi kaiwhakamahi kore whai mana ki te whakatutuki i te ahua o te uara PIPE_BUF_FLAG_CAN_MERGE i roto i te haki, ka taea e koe te whakarite i te tuhirua o nga raraunga i roto i te keteroki wharangi ma te tuhi noa i nga raraunga hou ki tetahi paipa kore ingoa kua whakaritea.

Mo te whakaeke, me panui te konae whaainga, a, na te mea kaore i te tirohia nga mana uru i te wa e tuhi ana ki te paipa, ka taea hoki te whakakapi i te keteroki wharangi mo nga konae kei roto i nga waahanga kua oti te panui-anake (hei tauira, mo nga konae c CD- ROM). I muri i te whakakapi i nga korero i roto i te keteroki wharangi, i te panui i nga raraunga mai i tetahi konae, kaore te tukanga e whiwhi i nga raraunga tuuturu, engari ko nga raraunga whakakapi.

Ko te mahi ka heke iho ki te hanga hongere kore ingoa me te whakakii i nga raraunga karekau kia pai ai te whakatakoto o te haki PIPE_BUF_FLAG_CAN_MERGE ki nga hanganga mowhiti katoa e pa ana ki a ia. I muri mai, ka panuihia nga raraunga mai i te hongere, engari ka noho tonu te haki i nga wa katoa o te hanganga pipe_buffer i roto i nga hanganga mowhiti pipe_inode_info. Ka karangahia ki te splice() ki te panui raraunga mai i te konae i whaaia ki roto i te paipa kore ingoa, ka timata mai i te waahi e hiahiatia ana. I te wa e tuhi ana i nga raraunga ki tenei putorino kore ingoa, na te mea kua whakaritea te haki PIPE_BUF_FLAG_CAN_MERGE, ko nga raraunga kei roto i te keteroki wharangi ka tuhiruahia hei utu mo te hanga tauira hou o te hanganga pipe_buffer.

Source: opennet.ru

Tāpiri i te kōrero