Vilnerabilite nan bibliyotèk estanda Rust

Yo te idantifye yon vilnerabilite (CVE-2022-21658) nan bibliyotèk estanda Rust akòz yon kondisyon ras nan fonksyon std::fs::remove_dir_all(). Si yo itilize fonksyon sa a pou efase fichye tanporè nan yon aplikasyon privilejye, yon atakè ka reyalize efase fichye sistèm abitrè ak anyè ke atakè a pa ta gen aksè nòmalman pou efase.

Se vilnerabilite a ki te koze pa egzekisyon kòrèk tcheke lyen senbolik anvan rekursiv efase anyè. Olye pou yo anpeche lyen senbolik yo swiv, remove_dir_all() premye tcheke si dosye a se yon lyen senbolik. Si yon lyen defini, Lè sa a, li se efase kòm yon dosye, epi si li se yon anyè, Lè sa a, yon operasyon retire kontni rekursif yo rele. Pwoblèm lan se ke gen yon ti reta ant chèk la ak kòmansman operasyon an efase.

Nan yon moman kote chèk la te deja fèt, men operasyon an nan enumere anyè pou efase poko kòmanse, atakè a ka ranplase anyè a ak dosye tanporè ak yon lyen senbolik. Si li frape nan bon moman an, fonksyon remove_dir_all() la pral trete lyen senbolik la kòm yon anyè epi kòmanse retire kontni lyen an montre. Malgre lefèt ke siksè nan atak la depann sou presizyon nan tan an chwazi pou ranplase anyè a ak frape bon moman an premye fwa a se fasil, pandan eksperyans yo chèchè yo te kapab reyalize yon atak siksè repete apre yo fin egzekite eksplwatasyon an. kèk segonn.

Tout vèsyon Rust soti nan 1.0.0 a 1.58.0 enklizif yo afekte. Pwoblèm nan te rezoud nan fòm patch pou kounye a (ranje a pral enkli nan lage 1.58.1, ki espere nan kèk èdtan). Ou ka kontwole eliminasyon vilnerabilite nan distribisyon nan paj sa yo: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch, FreeBSD. Nou konseye tout itilizatè pwogram Rust kap kouri ak privilèj elve epi k ap itilize fonksyon remove_dir_all pou mete Rust ijan ak vèsyon 1.58.1. Li enteresan ke patch la lage pa rezoud pwoblèm nan sou tout sistèm yo; pou egzanp, nan REDOX OS ak vèsyon macOS anvan 10.10 (Yosemite), vilnerabilite a pa bloke akòz absans la nan drapo O_NOFOLLOW, ki enfim swiv senbolik. lyen.

Sous: opennet.ru

Add nouvo kòmantè