ΠΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Rust Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π½Π° ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡ (CVE-2022-21658) ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠΎΡΡΠΎΡΠ±Π° Π½Π° ΡΡΠΊΠ° Π²ΠΎ ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° std::fs::remove_dir_all(). ΠΠΊΠΎ ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° Π±ΡΠΈΡΠ΅ΡΠ΅ ΠΏΡΠΈΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ°Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°, Π½Π°ΠΏΠ°ΡΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ Π±ΡΠΈΡΠ΅ΡΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ ΠΊΠΎΠΈ Π½Π°ΠΏΠ°ΡΠ°ΡΠΎΡ Π²ΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΎ Π½Π΅ΠΌΠ° Π΄Π° ΠΈΠΌΠ° ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ Π±ΡΠΈΡΠ΅ΡΠ΅.
Π Π°Π½Π»ΠΈΠ²ΠΎΡΡΠ° Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½Π° ΠΎΠ΄ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΡΠΏΡΠΎΠ²Π΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΌΠ±ΠΎΠ»ΠΈΡΠ½ΠΈ Π²ΡΡΠΊΠΈ ΠΏΡΠ΅Π΄ ΡΠ΅ΠΊΡΡΠ·ΠΈΠ²Π½ΠΎ Π±ΡΠΈΡΠ΅ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ. ΠΠ°ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠΏΡΠ΅ΡΠΈ ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΠΊΠΈ, remove_dir_all() ΠΏΡΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π΄Π°Π»ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° Π΅ ΡΠΈΠΌΠ²ΠΎΠ»Π½Π° Π²ΡΡΠΊΠ°. ΠΠΊΠΎ Π΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π° Π²ΡΡΠΊΠ°, ΡΠΎΠ³Π°Ρ ΡΠ°Π° ΡΠ΅ Π±ΡΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°, Π° Π°ΠΊΠΎ Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ, ΡΠΎΠ³Π°Ρ ΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ°ΡΠ° Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ΅ΠΊΡΡΠ·ΠΈΠ²Π½Π° ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°. ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π΅ ΡΡΠΎ ΠΈΠΌΠ° ΠΌΠ°Π»ΠΎ Π΄ΠΎΡΠ½Π΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° ΠΈ ΠΏΠΎΡΠ΅ΡΠΎΠΊΠΎΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ°ΡΠ° Π·Π° Π±ΡΠΈΡΠ΅ΡΠ΅.
ΠΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΊΠΎΠ³Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π΅ Π²Π΅ΡΠ΅ ΠΈΠ·Π²ΡΡΠ΅Π½Π°, Π½ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ°ΡΠ° Π·Π° Π½Π°Π±ΡΠΎΡΡΠ²Π°ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ Π·Π° Π±ΡΠΈΡΠ΅ΡΠ΅ ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ Π΅ Π·Π°ΠΏΠΎΡΠ½Π°ΡΠ°, Π½Π°ΠΏΠ°ΡΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΎΡ ΡΠΎ ΠΏΡΠΈΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΠΎ ΡΠΈΠΌΠ±ΠΎΠ»ΠΈΡΠ½Π° Π²ΡΡΠΊΠ°. ΠΠΎΠΊΠΎΠ»ΠΊΡ Π΄ΠΎΡΠ΄Π΅ Π²ΠΎ Π²ΠΈΡΡΠΈΠ½ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅, ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° remove_dir_all() ΡΠ΅ ΡΠ° ΡΡΠ΅ΡΠΈΡΠ° ΡΠΈΠΌΠ±ΠΎΠ»ΠΈΡΠ½Π°ΡΠ° Π²ΡΡΠΊΠ° ΠΊΠ°ΠΊΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ ΠΈ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ ΡΠΎ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π½Π° ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° Π½Π° ΠΊΠΎΡΠ°ΡΡΠΎ ΡΠΊΠ°ΠΆΡΠ²Π° Π²ΡΡΠΊΠ°ΡΠ°. Π ΠΏΠΎΠΊΡΠ°Ρ ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° ΡΡΠΏΠ΅Ρ ΠΎΡ Π½Π° Π½Π°ΠΏΠ°Π΄ΠΎΡ Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ ΡΠΎΡΠ½ΠΎΡΡΠ° Π½Π° ΠΈΠ·Π±ΡΠ°Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π·Π°ΠΌΠ΅Π½Π° Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΎΡ ΠΈ ΠΏΡΠΈΡΠΈΡΠΊΠ°ΡΠ΅ Π²ΠΎ Π²ΠΈΡΡΠΈΠ½ΡΠΊΠΈΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠ²ΠΈΠΎΡ ΠΏΠ°Ρ Π΅ ΠΌΠ°Π»ΠΊΡ Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ, Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ΅ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅Π° Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π°Ρ ΠΏΠΎΠ²ΡΠΎΡΠ»ΠΈΠ² ΡΡΠΏΠ΅ΡΠ΅Π½ Π½Π°ΠΏΠ°Π΄ ΠΏΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡΠ°ΡΠ° Π²ΠΎ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ.
Π‘ΠΈΡΠ΅ Π²Π΅ΡΠ·ΠΈΠΈ Π½Π° Rust ΠΎΠ΄ 1.0.0 Π΄ΠΎ 1.58.0 ΡΠ΅ Π·Π°ΡΠ΅Π³Π½Π°ΡΠΈ. ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π·Π°ΡΠ΅Π³Π° Π΅ ΡΠ΅ΡΠ΅Π½ Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° Π·Π°ΠΊΡΠΏΠ° (ΠΏΠΎΠΏΡΠ°Π²ΠΊΠ°ΡΠ° ΡΠ΅ Π±ΠΈΠ΄Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π²ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ 1.58.1, ΠΊΠΎΠ΅ ΡΠ΅ ΠΎΡΠ΅ΠΊΡΠ²Π° Π·Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ°ΡΠ°). ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΡΠ»Π΅Π΄ΠΈΡΠ΅ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ° Π²ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈΡΠ΅ Π½Π° ΠΎΠ²ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΈ: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch, FreeBSD. Π‘ΠΈΡΠ΅ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅ Rust ΠΊΠΎΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ ΡΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΠΈ ΡΠ° ΠΊΠΎΡΠΈΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° remove_dir_all ΡΠ΅ ΡΠΎΠ²Π΅ΡΡΠ²Π°Π°Ρ ΠΈΡΠ½ΠΎ Π΄Π° Π³ΠΎ Π°ΠΆΡΡΠΈΡΠ°Π°Ρ Rust Π½Π° Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° 1.58.1. ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΅ ΡΡΠΎ ΠΎΠ±ΡΠ°Π²Π΅Π½ΠΈΠΎΡ Π»Π΅ΠΏΠ΅Π½ΠΊΠ° Π½Π΅ Π³ΠΎ ΡΠ΅ΡΠ°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π½Π° ΡΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ; Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎ REDOX OS ΠΈ Π²Π΅ΡΠ·ΠΈΠΈΡΠ΅ Π½Π° macOS ΠΏΡΠ΅Π΄ 10.10 (Yosemite), ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ° Π½Π΅ Π΅ Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π° ΠΏΠΎΡΠ°Π΄ΠΈ ΠΎΡΡΡΡΡΠ²ΠΎΡΠΎ Π½Π° Π·Π½Π°ΠΌΠ΅ΡΠΎ O_NOFOLLOW, ΠΊΠΎΠ΅ Π³ΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΡΠ»Π΅Π΄Π΅ΡΠ΅ΡΠΎ ΡΠΈΠΌΠ±ΠΎΠ»ΠΈΡΠ½ΠΎ Π²ΡΡΠΊΠΈ.
ΠΠ·Π²ΠΎΡ: opennet.ru