Уязвимост Π² systemd, която ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° СскалиратС Π²Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ

Π’ систСмния ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ systemd ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ уязвимост (CVE-2020 1712-), ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ Π²ΠΈ позволява Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄Π° си с повишСни ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΡ‚Π΅ спСциално ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π° заявка ΠΏΡ€Π΅Π· DBus ΡˆΠΈΠ½Π°Ρ‚Π°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ отстранСн Π² тСстовата вСрсия systemd 245-rc1 (ΠΏΠ°Ρ‡ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: 1, 2, 3). Уязвимостта Π΅ ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½Π° Π² дистрибуции Ubuntu, Fedora, RHEL (появява сС Π² RHEL 8, Π½ΠΎ Π½Π΅ засяга RHEL 7), CentOS ΠΈ SUSE/openSUSE, Π½ΠΎ към ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° писанС Π½ΠΎΠ²ΠΈΠ½Π°Ρ‚Π° остава Π½Π΅ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½Π° Π² Debian ΠΈ Arch Linux.

Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ ΡƒΠΆΠ΅ освобоТдённой области памяти (use-after-free), Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈ асинхронном Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ запросов ΠΊ Polkit Π²ΠΎ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ DBus-сообщСний. НСкоторыС DBus-интСрфСйсы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ кэш для хранСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ врСмя ΠΈ ΠΎΡ‡ΠΈΡ‰Π°ΡŽΡ‚ элСмСнты кэша ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ шина DBus освободится для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… запросов. Если ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ DBus-ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ bus_verify_polkit_async(), Π΅ΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ потрСбуСтся ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ дСйствия Π² Polkit. ПослС готовности Polkit ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ вызываСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈ обращаСтся ΠΊ ΡƒΠΆΠ΅ Ρ€Π°Π½Π΅Π΅ распрСдСлённым Π² памяти Π΄Π°Π½Π½Ρ‹ΠΌ. Если запрос ΠΊ Polkit выполняСтся слишком Π΄ΠΎΠ»Π³ΠΎ, Ρ‚ΠΎ элСмСнты Π² кэшС ΡƒΡΠΏΠ΅Π²Π°ΡŽΡ‚ очистится Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ DBus-ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·.

Π‘Ρ€Π΅Π΄ услугитС, ΠΊΠΎΠΈΡ‚ΠΎ позволяват Сксплоатация Π½Π° уязвимостта, сС отбСлязва systemd-machined, ΠΊΠΎΠΉΡ‚ΠΎ прСдоставя DBus API org.freedesktop.machine1.Image.Clone, Π²ΠΎΠ΄Π΅Ρ‰ Π΄ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² кСша ΠΈ асинхронСн Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Polkit. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ
org.freedesktop.machine1.Image.Clone Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π·Π° всички Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π½Π° систСмата, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ срив Π½Π° систСмнитС услуги ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ изпълнСниС Π½Π° ΠΊΠΎΠ΄ ΠΊΠ°Ρ‚ΠΎ root (ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡŠΡ‚ Π½Π° Сксплойт всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ дСмонстриран). ΠšΠΎΠ΄ΡŠΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° уязвимостта, бСшС Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ Π² systemd-machined във вСрсия 2015 систСмСн 220 (RHEL 7.x ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° systemd 219).

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€