Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² systemd, ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ свои ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ

Π’ систСмном ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π΅ systemd выявлСна ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ (CVE-2020-1712), которая ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ выполнСния своСго ΠΊΠΎΠ΄Π° с ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ привилСгиями Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ запроса ΠΏΠΎ шинС DBus. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° исправлСна Π² тСстовом выпускС systemd 245-rc1 (Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΏΠ°Ρ‚Ρ‡ΠΈ: 1, 2, 3). Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ устранСна Π² дистрибутивах Ubuntu, Fedora, RHEL (проявляСтся Π² RHEL 8, Π½ΠΎ Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ RHEL 7), CentOS, SUSE/openSUSE ΠΈ ROSA, Π½ΠΎ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания новости остаётся нСисправлСнной Π² 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 доступСн всСм Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ систСмы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€Π°Ρ… сСрвисов systemd ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ выполнСния ΠΊΠΎΠ΄Π° с ΠΏΡ€Π°Π²Π°ΠΌΠΈ root (ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ эксплоита ΠΏΠΎΠΊΠ° Π½Π΅ продСмонстрирован). Код, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² systemd-machined Π² 2015 Π³ΠΎΠ΄Ρƒ Π² вСрсии systemd 220 (Π² RHEL 7.x ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ systemd 219).

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