Уязвимост Π² cgroups v1, позволяваща ΠΈΠ·Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€

Π Π°Π·ΠΊΡ€ΠΈΡ‚ΠΈ са Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈΡ‚Π΅ Π·Π° уязвимост (CVE-2022-0492) Π² рСализацията Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° рСсурситС cgroups v1 Π² ядрото Π½Π° Linux, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ ΠΎΡ‚ ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ сС проявява ΠΎΡ‚ ядрото Π½Π° Linux 2.6.24 ΠΈ Π΅ отстранСн Π² вСрсиитС Π½Π° ядрото 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266 ΠΈ 4.9.301. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° прослСдитС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° актуализацията Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π² дистрибуциитС Π½Π° Ρ‚Π΅Π·ΠΈ страници: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.

Уязвимостта Π΅ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½Π° ΠΎΡ‚ логичСска Π³Ρ€Π΅ΡˆΠΊΠ° Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ release_agent, ΠΏΠΎΡ€Π°Π΄ΠΈ която Π½Π΅ са ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€ΠΈ стартиранС Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° с пълСн Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΡ€Π°Π²Π°. Π€Π°ΠΉΠ»ΡŠΡ‚ release_agent сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° опрСдСлянС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°, изпълнявана ΠΎΡ‚ ядрото ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° процСс Π² cgroup. Π’Π°Π·ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° сС стартира с ΠΏΡ€Π°Π²Π° Π½Π° root ΠΈ с всички "capabilities" Π² ΠΊΠΎΡ€Π΅Π½ΠΎΠ²ΠΎΡ‚ΠΎ пространство Π½Π° ΠΈΠΌΠ΅Π½Π°Ρ‚Π°. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π° сС, Ρ‡Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ настройката Π½Π° release_agent ΠΈΠΌΠ°Ρ‚ само администратори, Π½ΠΎ Π² дСйствитСлност ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΡ‚Π΅ са ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ Π΄ΠΎ прСдоставянС Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» с ΠΏΡ€Π°Π²Π° Π½Π° root, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π° промяна Π½Π° настройката ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈΠ»ΠΈ ΠΎΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» с ΠΏΡ€Π°Π²Π° Π½Π° root Π±Π΅Π· администраторски ΠΏΡ€Π°Π²Π° (CAP_SYS_ADMIN).

По-Ρ€Π°Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° характСристика Π½Π΅ Π±ΠΈ Π±ΠΈΠ»Π° Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅Ρ‚Π° ΠΊΠ°Ρ‚ΠΎ уязвимост, Π½ΠΎ ситуацията сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ с появата Π½Π° пространствата Π½Π° ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° потрСбитСлскитС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ (user namespaces), ΠΊΠΎΠΈΡ‚ΠΎ позволяват ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ root Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ сС прСсичат с потрСбитСля root Π½Π° основната срСда. Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, Π·Π° Π°Ρ‚Π°ΠΊΠ° Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ° свой собствСн ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» root Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ пространство Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅, Π΄Π° сС Π²ΠΊΠ»ΡŽΡ‡ΠΈ собствСн ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ release_agent, ΠΊΠΎΠΉΡ‚ΠΎ слСд Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° процСса Ρ‰Π΅ сС изпълни с пълни ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π½Π° основната срСда.

По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ cgroupfs сС ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π° Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π² Ρ€Π΅ΠΆΠΈΠΌ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅, Π½ΠΎ няма ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΄Π° сС ΠΏΡ€Π΅-ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π° Ρ‚Π°Π·ΠΈ pseudo-fs Π² Ρ€Π΅ΠΆΠΈΠΌ запис ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° ΠΏΡ€Π°Π²Π° CAP_SYS_ADMIN ΠΈΠ»ΠΈ Ρ‡Ρ€Π΅Π· създаванС с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° систСмСн ΠΏΠΎΠ²ΠΈΠΊ unshare Π½Π° Π²Π»ΠΎΠΆΠ΅Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ user namespace, Π² ΠΊΠΎΠΉΡ‚ΠΎ Π·Π° създадСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ са Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ ΠΏΡ€Π°Π²Π°Ρ‚Π° CAP_SYS_ADMIN.

Уязвимост Π² cgroups v1, позволяваща ΠΈΠ·Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€

Атаката ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½a ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° root-ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ стартиранС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π±Π΅Π· Ρ„Π»Π°Π³ no_new_privs, ΠΊΠΎΠΉΡ‚ΠΎ забранява ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° user namespaces трябва Π΄Π° бъдС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π° Π² систСмата (ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π° Π² Ubuntu ΠΈ Fedora, Π½ΠΎ Π½Π΅ Π΅ Π² Debian ΠΈ RHEL) ΠΈ трябва Π΄Π° ΠΈΠΌΠ° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ корСновия cgroup v1 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Docker стартира ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ Π² корСновия RDMA cgroup). Атаката ΡΡŠΡ‰ΠΎ Π΅ възмоТна ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ CAP_SYS_ADMIN, Π² Ρ‚ΠΎΠ·ΠΈ случай ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° user namespaces ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΊΠΎΡ€Π΅Π½ΠΎΠ²Π°Ρ‚Π° йСрархия cgroup v1 Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°.

ОсвСн ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅Ρ‚ΠΎ ΠΎΡ‚ ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, уязвимостта ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° позволява Π½Π° процСситС, стартирани ΠΎΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» с ΠΏΡ€Π°Π²Π° Π½Π° root Π±Π΅Π· "capabilities", ΠΈΠ»ΠΈ Π½Π° всСки ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» с ΠΏΡ€Π°Π²Π° CAP_DAC_OVERRIDE (Π·Π° Π°Ρ‚Π°ΠΊΠ°Ρ‚Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ„Π°ΠΉΠ»Π° /sys/fs/cgroup/*/release_agent, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ Π½Π° root), Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ всички систСмни "capabilities."

ΠžΡ‚Π±Π΅Π»ΡΠ·Π²Π° сС, Ρ‡Π΅ уязвимостта Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Сксплоатирана ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Seccomp, AppArmor ΠΈΠ»ΠΈ SELinux Π·Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° изолация Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Seccomp Π±Π»ΠΎΠΊΠΈΡ€Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° систСмния ΠΏΠΎΠ²ΠΈΠΊ unshare(), Π° AppArmor ΠΈ SELinux Π½Π΅ позволяват ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° cgroupfs Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° запис.

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

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