Pilikia i ka hale waihona puke Rust

Ua ʻike ʻia kahi haʻahaʻa (CVE-2022-21658) i loko o ka hale waihona puke Rust ma muli o ke kūlana lāhui i ka hana std ::fs::remove_dir_all(). Inā hoʻohana ʻia kēia hana no ka holoi ʻana i nā faila no ka manawa lōʻihi i kahi noi pono, hiki i ka mea hoʻouka ke hoʻokō i ka holoi ʻana i nā faila ʻōnaehana arbitrary a me nā papa kuhikuhi i loaʻa ʻole i ka mea hoʻouka e holoi.

Ma muli o ka hoʻokō pono ʻole o ka nānā ʻana i nā loulou hōʻailona ma mua o ka holoi ʻana i nā papa kuhikuhi. Ma kahi o ka pale ʻana i nā symlinks mai ka hahai ʻana, remove_dir_all() nānā mua inā he symlink ka faila. Inā wehewehe ʻia kahi loulou, a laila holoi ʻia ʻo ia ma ke ʻano he faila, a inā he papa kuhikuhi, a laila kapa ʻia kahi hana hoʻoneʻe maʻiʻo recursive. ʻO ka pilikia, aia kahi lohi iki ma waena o ka nānā a me ka hoʻomaka ʻana o ka hana holoi.

I ka manawa i hoʻokō ʻia ai ka loiloi, akā ʻaʻole i hoʻomaka ka hana o ka helu ʻana i nā papa kuhikuhi no ka holoi ʻana, hiki i ka mea hoʻouka ke hoʻololi i ka papa kuhikuhi me nā faila pōkole me kahi loulou hōʻailona. Inā paʻi i ka manawa kūpono, e mālama ka hana remove_dir_all() i ka loulou hōʻailona ma ke ʻano he papa kuhikuhi a hoʻomaka e wehe i ka ʻike i kuhikuhi ʻia ai nā loulou. ʻOiai ʻo ka kūleʻa o ka hoʻouka ʻana e pili ana i ka pololei o ka manawa i koho ʻia no ka hoʻololi ʻana i ka papa kuhikuhi a me ka paʻi ʻana i ka manawa kūpono i ka manawa mua ʻaʻole hiki ke loaʻa, i ka wā o nā hoʻokolohua ua hiki i nā mea noiʻi ke hoʻokō i kahi hoʻouka kūleʻa hou ʻia ma hope o ka hoʻokō ʻana i ka hana i loko. he mau kekona.

Hoʻopili ʻia nā mana āpau o Rust mai 1.0.0 a i 1.58.0. Ua hoʻoholo ʻia ka pilikia ma ke ʻano patch no kēia manawa (e hoʻokomo ʻia ka hoʻoponopono i ka hoʻokuʻu 1.58.1, i manaʻo ʻia i loko o kekahi mau hola). Hiki iā ʻoe ke nānā i ka hoʻopau ʻia ʻana o ka nāwaliwali i ka hāʻawi ʻana i kēia mau ʻaoʻao: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch, FreeBSD. ʻO nā mea hoʻohana a pau o nā polokalamu Rust e holo ana me nā pono kiʻekiʻe a me ka hoʻohana ʻana i ka hana remove_dir_all e ʻōlelo ʻia e hoʻohou koke iā Rust i ka mana 1.58.1. He mea hoihoi ia ʻaʻole i hoʻonā ka pā i hoʻokuʻu ʻia i ka pilikia ma nā ʻōnaehana āpau; no ka laʻana, ma REDOX OS a me nā mana o macOS ma mua o 10.10 (Yosemite), ʻaʻole i ālai ʻia ka nāwaliwali ma muli o ka nele o ka hae O_NOFOLLOW, ka mea i hoʻopau ʻia ma hope o ka hōʻailona. nā loulou.

Source: opennet.ru

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