Π Π°Π·ΠΊΡΠΈΡΠΈ ΡΠ° Π΄Π΅ΡΠ°ΠΉΠ»ΠΈΡΠ΅ Π·Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ (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.

ΠΡΠ°ΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·Π²ΡΡΡΠ΅Π½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
