Уязвимост Π² стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° Rust

Π’ стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° 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 ΠΈ Π² вСрсии Π½Π° macOS ΠΏΡ€Π΅Π΄ΠΈ 10.10 (Yosemite) уязвимостта Π½Π΅ Π΅ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π° ΠΏΠΎΡ€Π°Π΄ΠΈ липса Π½Π° Ρ„Π»Π°Π³ O_NOFOLLOW, ΠΊΠΎΠΉΡ‚ΠΎ прСдотвратява слСдванСто Π½Π° символични Π²Ρ€ΡŠΠ·ΠΊΠΈ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster