Kerentanan ing perpustakaan standar Rust

A kerentanan (CVE-2022-21658) wis dikenali ing Rust perpustakaan standar amarga kondisi lomba ing std :: fs :: remove_dir_all () fungsi. Yen fungsi iki digunakake kanggo mbusak file sauntara ing aplikasi sing duwe hak istimewa, panyerang bisa mbusak file sistem lan direktori sing ora bisa dibusak.

Kerentanan kasebut disebabake dening implementasine salah mriksa pranala simbolis sadurunge rekursif mbusak direktori. Tinimbang nyegah symlink supaya ora diterusake, remove_dir_all () mriksa dhisik apa file kasebut minangka symlink. Yen link ditetepake, banjur bakal dibusak minangka file, lan yen iku direktori, banjur operasi mbusak isi rekursif disebut. Masalah iku ana wektu tundha tipis antarane mriksa lan wiwitan operasi mbusak.

Nalika mriksa wis ditindakake, nanging operasi enumerasi direktori kanggo pambusakan durung diwiwiti, panyerang bisa ngganti direktori kasebut kanthi file sementara kanthi tautan simbolis. Yen cocog ing wektu sing tepat, fungsi remove_dir_all () bakal nganggep pranala simbolis minangka direktori lan wiwit mbusak isi sing dituju link kasebut. Senadyan kasunyatan manawa sukses serangan kasebut gumantung saka akurasi wektu sing dipilih kanggo ngganti direktori lan tekan wektu sing tepat nalika sepisanan ora mungkin, sajrone eksperimen, para peneliti bisa entuk serangan sukses sing bisa diulang sawise nglakokake eksploitasi kasebut. sawetara detik.

Kabeh versi Rust saka 1.0.0 kanggo 1.58.0 klebu kena pengaruh. Jeksa Agung bisa ngetokake wis ditanggulangi ing wangun tembelan kanggo saiki (fix bakal kalebu ing release 1.58.1, kang samesthine ing sawetara jam). Sampeyan bisa ngawasi penghapusan kerentanan ing distribusi ing kaca iki: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch, FreeBSD. Kabeh pangguna program Rust sing mlaku kanthi hak istimewa sing luwih dhuwur lan nggunakake fungsi remove_dir_all disaranake supaya cepet nganyari Rust menyang versi 1.58.1. Apike yen patch sing dirilis ora ngrampungake masalah ing kabeh sistem; contone, ing REDOX OS lan versi macOS sadurunge 10.10 (Yosemite), kerentanan ora diblokir amarga ora ana gendera O_NOFOLLOW, sing mateni simbolis ing ngisor iki. pranala.

Source: opennet.ru

Add a comment