Te whakaraerae i te whare pukapuka paerewa Rust

He whakaraeraetanga (CVE-2022-21658) kua kitea i roto i te whare pukapuka paerewa Rust na te ahuatanga o te reihi i roto i te mahi std::fs::remove_dir_all(). Mena ka whakamahia tenei mahi ki te muku i nga konae rangitahi i roto i tetahi tono whaimana, ka taea e te kaitukino te whakakore i nga konae punaha me nga raarangi whaiaronga kaore e taea e te kaitukino te uru ki te muku.

Ko te whakaraeraetanga i puta mai i te he o te whakatinanatanga o te tirotiro i nga hononga tohu i mua i te whakakore i nga raarangi whaiaronga. Engari kaua e aukati i te whai i nga hononga tohu, tango_dir_all() tuatahi ka taki mena he hononga tohu te konae. Mena kua tautuhia he hononga, ka mukua hei konae, a mena he whaiaronga, ka kiia he mahi tango ihirangi recursive. Ko te raruraru he iti nei te whakaroa i waenga i te haki me te timatanga o te mahi whakakore.

I te wa kua oti te tirotiro, engari kaore ano kia timata te mahi o nga raarangi mo te whakakorenga, ka taea e te kaitukino te whakakapi i te raarangi ki nga konae rangitahi me te hono tohu. Mena ka pa ki te wa tika, ka mahia e te mahi tango_dir_all() te hono tohu hei raarangi ka tiimata te tango i nga ihirangi e tohuhia ana e te hononga. Ahakoa te mea ko te angitu o te whakaeke ka whakawhirinaki ki te tika o te wa i whiriwhiria mo te whakakapi i te raarangi me te patu i te waa tika i te wa tuatahi kaore pea, i nga wa o nga whakamatautau ka taea e nga kairangahau te whakatutuki i te whakaeke angitu i muri i te mahi i te mahi i roto. he hēkona ruarua.

Ko nga putanga katoa o Rust mai i te 1.0.0 ki te 1.58.0 kei roto ka pa. Kua whakatauhia te take i roto i te ahua papaki mo tenei wa (ka uru te whakatika ki te tukunga 1.58.1, e tumanakohia ana i roto i etahi haora). Ka taea e koe te aro turuki i te whakakorenga o te whakaraerae i nga tohatoha i runga i enei wharangi: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch, FreeBSD. Ko nga kaiwhakamahi katoa o nga papatono Rust e whakahaere ana me nga mana teitei me te whakamahi i te mahi remove_dir_all ka tohutohuhia kia tere te whakahou i a Rust ki te putanga 1.58.1. He mea whakamiharo kaore te papaki i tukuna e whakaoti i te raru i runga i nga punaha katoa; hei tauira, i roto i te REDOX OS me nga putanga o te macOS i mua i te 10.10 (Yosemite), kaore te whakaraeraetanga e araia na te kore o te haki O_NOFOLLOW, e whakakore ana i nga tohu tohu. hononga.

Source: opennet.ru

Tāpiri i te kōrero