ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π½Π° Π΅ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡ (CVE-2022-0185) Π²ΠΎ Filesystem Context API ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° ΠΎΠ΄ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Linux, ΡΡΠΎ ΠΌΡ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈΠΎΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ ΠΏΡΠ°Π²Π° Π½Π° root Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ. ΠΡΡΡΠ°ΠΆΡΠ²Π°ΡΠΎΡ ΠΊΠΎΡ Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΠΎΠ±ΡΠ°Π²ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡΠ° Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°Ρ ΠΊΠΎΡ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΈΠ·Π²ΡΡΠΈΡΠ΅ ΠΊΠΎΠ΄ ΠΊΠ°ΠΊΠΎ root Π½Π° Ubuntu 20.04 Π²ΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°. Π‘Π΅ ΠΏΠ»Π°Π½ΠΈΡΠ° Π΅ΠΊΡΠΏΠ»ΠΎΠ°Ρ ΠΊΠΎΠ΄ΠΎΡ Π΄Π° Π±ΠΈΠ΄Π΅ ΠΎΠ±ΡΠ°Π²Π΅Π½ Π½Π° GitHub Π²ΠΎ ΡΠΎΠΊ ΠΎΠ΄ Π΅Π΄Π½Π° Π½Π΅Π΄Π΅Π»Π° ΠΎΡΠΊΠ°ΠΊΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π²ΠΈΡΠ° Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ ΡΡΠΎ ΡΠ΅ ΡΠ° ΠΏΠΎΠΏΡΠ°Π²ΠΈ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ°.
Π Π°Π½Π»ΠΈΠ²ΠΎΡΡΠ° ΠΏΠΎΡΡΠΎΠΈ Π²ΠΎ ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° legacy_parse_param() Π²ΠΎ VFS ΠΈ Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½Π° ΠΎΠ΄ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π°ΡΠ° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½ΠΈ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°Π°Ρ API Π½Π° Π΄Π°ΡΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. ΠΡΠ΅Π΄Π°Π²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ ΠΊΠΎΡ Π΅ ΠΏΡΠ΅ΠΌΠ½ΠΎΠ³Ρ Π³ΠΎΠ»Π΅ΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° ΠΏΡΠ΅Π»Π΅Π²Π°ΡΠ΅ Π½Π° ΡΠ΅Π»ΠΎΠ±ΡΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π°ΡΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΡΡΠΎ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ - ΠΊΠΎΠ΄ΠΎΡ ΠΈΠΌΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΡΠ΅Π»Π΅Π²Π°ΡΠ΅ Π½Π° Π±Π°ΡΠ΅ΡΠΎΡ βif (len > PAGE_SIZE - 2 - size)β, ΡΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ Π°ΠΊΠΎ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠ° Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π΅ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠ° ΠΎΠ΄ 4094. Π·Π° ΠΏΡΠ΅Π»Π΅Π²Π°ΡΠ΅ Π½Π° ΡΠ΅Π» Π±ΡΠΎΡ Π½ΠΈΠ· Π΄ΠΎΠ»Π½Π°ΡΠ° Π³ΡΠ°Π½ΠΈΡΠ° (ΡΠ΅Π»ΠΎΠ±ΡΠΎΡΠ½ΠΎ ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠ΅, ΠΏΡΠΈ ΡΡΠ»Π°ΡΠ΅ 4096 - 2 - 4095 Π½Π° Π½Π΅ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΎ int, ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΎΡ Π΅ 2147483648).
ΠΠ²Π°Π° Π³ΡΠ΅ΡΠΊΠ° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°, ΠΊΠΎΠ³Π° ΠΏΡΠΈΡΡΠ°ΠΏΡΠ²Π°ΡΠ΅ Π΄ΠΎ ΡΠΏΠ΅ΡΠΈΡΠ°Π»Π½ΠΎ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½Π° ΡΠ»ΠΈΠΊΠ° Π½Π° Π΄Π°ΡΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ, Π΄Π° ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅ ΠΏΡΠ΅Π»Π΅Π²Π°ΡΠ΅ Π½Π° Π±Π°ΡΠ΅ΡΠΎΡ ΠΈ Π΄Π° Π³ΠΈ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ ΠΏΠΎ Π΄ΠΎΠ΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠΊΠ° ΠΎΠ±Π»Π°ΡΡ. ΠΠ° Π΄Π° ΡΠ° ΠΈΡΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ°, ΠΌΠΎΡΠ° Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠ°Π²Π° CAP_SYS_ADMIN, Ρ.Π΅. Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΠΊΠΈ ΠΎΠ²Π»Π°ΡΡΡΠ²Π°ΡΠ°. ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π΅ ΡΡΠΎ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ°Π½ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ ΡΠ°ΠΊΠ²ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ Π²ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ Π°ΠΊΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΠΈΠΌΠ° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎΡΠΈ ΡΠΎ ΠΈΠΌΠΈΡΠ°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈΡΠ΅ ΠΏΡΠΎΡΡΠΎΡΠΈ ΡΠΎ ΠΈΠΌΠΈΡΠ° ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΈ Π½Π° Ubuntu ΠΈ Fedora, Π½ΠΎ Π½Π΅ ΡΠ΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΈ Π½Π° Debian ΠΈ RHEL (ΠΎΡΠ²Π΅Π½ Π°ΠΊΠΎ Π½Π΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ Π·Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ).
ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΠ²Π° ΡΡΡΠ΅ ΠΎΠ΄ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° Linux 5.1 ΠΈ Π±Π΅ΡΠ΅ ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ Π²ΠΎ Π²ΡΠ΅ΡΠ°ΡΠ½ΠΈΡΠ΅ Π°ΠΆΡΡΠΈΡΠ°ΡΠ° 5.16.2, 5.15.16, 5.10.93, 5.4.173. ΠΠΆΡΡΠΈΡΠ°ΡΠ°ΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΡΠΎ ΡΠ° ΠΏΠΎΠΏΡΠ°Π²Π°Π°Ρ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ° Π²Π΅ΡΠ΅ ΡΠ΅ ΠΎΠ±ΡΠ°Π²Π΅Π½ΠΈ Π·Π° RHEL, Debian, Fedora ΠΈ Ubuntu. ΠΠΎΠΏΡΠ°Π²ΠΊΠ°ΡΠ° ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ Π΅ Π΄ΠΎΡΡΠ°ΠΏΠ½Π° Π½Π° Arch Linux, Gentoo, SUSE ΠΈ openSUSE. ΠΠ°ΠΊΠΎ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠΎΠΈ Π½Π΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠ° Π½Π° sysctl βuser.max_user_namespacesβ Π½Π° 0: echo βuser.max_user_namespaces=0β > /etc/sysctl.d/userns.conf # sysctl -p /etc/ sysctl.d/userns.conf
ΠΠ·Π²ΠΎΡ: opennet.ru