ΠΡΡ Π° ΡΠ°Π·ΠΊΡΠΈΡΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ (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 ΠΈ Ρ Π²ΡΠΈΡΠΊΠΈ βΠ²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈβ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° root. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΠ΅ ΡΠ΅, ΡΠ΅ ΡΠ°ΠΌΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΡ ΠΈΠΌΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° release_agent, Π½ΠΎ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΡΠ΅ Π±ΡΡ Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ Π΄ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏ Π½Π° root ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½Π° ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈΠ»ΠΈ ΠΎΡ root ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π±Π΅Π· Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΠΊΠΈ ΠΏΡΠ°Π²Π° (CAP_SYS_ADMIN ).
ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π±ΠΈ Π±ΠΈΠ»Π° Π²ΡΠ·ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π° ΠΊΠ°ΡΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ, Π½ΠΎ ΡΠΈΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Ρ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π° (ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π°), ΠΊΠΎΠΈΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΎΡΠ΄Π΅Π»Π½ΠΈ root ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ΅ ΠΏΡΠΈΠΏΠΎΠΊΡΠΈΠ²Π°Ρ Ρ root ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π° ΡΡΠ΅Π΄Π°. Π‘ΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, Π·Π° Π°ΡΠ°ΠΊΠ° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ ΡΠ²ΠΎΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ Π½Π° release_agent Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½ root ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π² ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ»Π΅Π΄ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ Ρ ΠΏΡΠ»Π½ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΡΠ΅Π΄Π°.
ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ cgroupfs ΡΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠ° Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅, Π½ΠΎ Π½ΡΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΡΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ°ΠΉΠ» Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π·Π°ΠΏΠΈΡ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠ°Π²Π° CAP_SYS_ADMIN ΠΈΠ»ΠΈ ΡΡΠ΅Π· ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²Π»ΠΎΠΆΠ΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π·Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΠ½Π΅ΡΠΎ, Π² ΠΊΠΎΠ΅ΡΠΎ ΠΡΠ°Π²Π°ΡΠ° CAP_SYS_ADMIN ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ Π·Π° ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
ΠΡΠ°ΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·Π²ΡΡΡΠ΅Π½Π°, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠ°Π²Π° Π½Π° root Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π±Π΅Π· ΡΠ»Π°Π³Π° no_new_privs, ΠΊΠΎΠΉΡΠΎ Π·Π°Π±ΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ. Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π° (Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π² Ubuntu ΠΈ Fedora, Π½ΠΎ Π½Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° Π² Debian ΠΈ RHEL) ΠΈ Π΄Π° ΠΈΠΌΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° cgroup v1 (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Docker ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° RDMA cgroup). ΠΡΠ°ΠΊΠ°ΡΠ° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½Π° ΠΈ Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ CAP_SYS_ADMIN, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ»ΡΡΠ°ΠΉ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π° ΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡ Π½Π° cgroup v1.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ Π±ΡΠ³ΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΠΈ, ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈ ΠΎΡ root ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π±Π΅Π· "Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ" ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Ρ CAP_DAC_OVERRIDE ΠΏΡΠ°Π²Π° (Π°ΡΠ°ΠΊΠ°ΡΠ° ΠΈΠ·ΠΈΡΠΊΠ²Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ°ΠΉΠ»Π° /sys/fs/cgroup/*/release_agent, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΡΠΈΡΠ΅ΠΆΠ°Π²Π°Π½ ΠΎΡ root), Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ βΠ²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈβ.
ΠΡΠ±Π΅Π»ΡΠ·Π²Π° ΡΠ΅, ΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π·Π°ΡΠΈΡΠ½ΠΈΡΠ΅ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΈ Seccomp, AppArmor ΠΈΠ»ΠΈ SELinux Π·Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Seccomp Π±Π»ΠΎΠΊΠΈΡΠ° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΡΠΎ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ unshare(), Π° AppArmor ΠΈ SELinux Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ Π½Π° cgroupfs Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π·Π°ΠΏΠΈΡ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru