Уязвимости Π² Please, Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π΅ sudo, написанной Π½Π° языкС Rust

ΠœΠ°Ρ‚Ρ‚ΠΈΠ°Ρ ГСрстнСр (Matthias Gerstner) ΠΈΠ· SUSE Security Team ΠΏΡ€ΠΎΠ²Ρ‘Π» Π°ΡƒΠ΄ΠΈΡ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Please, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π² качСствС Π±ΠΎΠ»Π΅Π΅ бСзопасной Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ sudo, написанной Π½Π° языкС Rust ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ рСгулярныС выраТСния. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° поставляСтся Π² рСпозиториях Debian Testing ΠΈ Ubuntu 21.04 Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ rust-pleaser. Π’ Ρ…ΠΎΠ΄Π΅ Π°ΡƒΠ΄ΠΈΡ‚Π° Π±Ρ‹Π»Π° выявлСна Π³Ρ€ΡƒΠΏΠΏΠ° уязвимостСй (CVE-2021-31153, CVE-2021-31154, CVE-2021-31155), приводящих ΠΊ ΠΊΡ€Π°Ρ…Ρƒ ΠΈ Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания эксплоитов для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Π² систСмС.

Уязвимости устранСны Π² Π²Π΅Ρ‚ΠΊΠ΅ Please 0.4 (обновлСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΡƒΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ для Ubuntu ΠΈ Debian). ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π΅ уязвимостСй ΠΏΠΎΠΊΠ° Π½Π΅ ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ΡΡ — доступСн лишь ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΠ°Ρ‚Ρ‡ ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ пояснСниС, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΏΠΎ ΡƒΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹.

НапримСр, упомянут ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° использованиС fd ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ chmod ΠΈ chown, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Π° do_environment, задСйствованиС Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² seteuid/setguid, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„Π»Π°Π³Π° O_NOFOLLOW для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ слСдования символичСским ссылкам, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, использованиС случайных символов Π² ΠΈΠΌΠ΅Π½Π°Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π·Π°Π΄Π°Π½ΠΈΠ΅ ограничСния Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° с настройками.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ послС ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ исправлСний Π²Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ послС установки ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π° исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ /usr/bin/please ΠΈ /usr/bin/pleaseedit пСрСстал Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ Ρ„Π»Π°Π³ setuid, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ принятия Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ‚Ρ‡Π°, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ настройку «Rules-Requires-Root: no».

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