ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π½Π° Π΅ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡ (CVE-2021-22555) Π²ΠΎ Netfilter, ΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° Linux ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°ΡΠ΅ ΠΈ ΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΡΠ΅ΠΆΠ½ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΡΡΠΎ ΠΌΡ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈΠΎΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ Π΄Π° ΡΡΠ΅ΠΊΠ½Π΅ ΠΏΡΠ°Π²Π° Π½Π° root Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈ Π΄ΠΎΠ΄Π΅ΠΊΠ° Π΅ Π²ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ. Π Π°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°Ρ ΠΊΠΎΡ Π³ΠΈ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΡΠ²Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈΡΠ΅ Π·Π° Π·Π°ΡΡΠΈΡΠ° KASLR, SMAP ΠΈ SMEP Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ Π·Π° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅. ΠΡΡΡΠ°ΠΆΡΠ²Π°ΡΠΎΡ ΠΊΠΎΡ ΡΠ° ΠΎΡΠΊΡΠΈ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ° Π΄ΠΎΠ±ΠΈ Π½Π°Π³ΡΠ°Π΄Π° ΠΎΠ΄ 20 Π΄ΠΎΠ»Π°ΡΠΈ ΠΎΠ΄ Google Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ Π·Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΡΠ²Π°ΡΠ΅ Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ Kubernetes Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ kCTF.
ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΠΏΠΎΡΡΠΎΠΈ ΡΡΡΠ΅ ΠΎΠ΄ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ 2.6.19, ΠΎΠ±ΡΠ°Π²Π΅Π½ ΠΏΡΠ΅Π΄ 15 Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈ Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ ΠΎΠ΄ Π³ΡΠ΅ΡΠΊΠ° Π²ΠΎ ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΠ΅ IPT_SO_SET_REPLACE ΠΈ IP6T_SO_SET_REPLACE ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΡΠ²Π° ΠΏΡΠ΅Π»Π΅Π²Π°ΡΠ΅ Π½Π° Π±Π°ΡΠ΅ΡΠΎΡ ΠΏΡΠΈ ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠ°Π»Π½ΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΏΡΠ΅ΠΊΡ ΠΏΠΎΠ²ΠΈΠΊ setsockopt Π²ΠΎ ΠΊΠΎΠΌΠΏΠ°Ρ ΡΠ΅ΠΆΠΈΠΌ. ΠΠΎ Π½ΠΎΡΠΌΠ°Π»Π½ΠΈ ΠΎΠΊΠΎΠ»Π½ΠΎΡΡΠΈ, ΡΠ°ΠΌΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π½Π° root ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΏΠ°ΡΠΈ ΠΏΠΎΠ²ΠΈΠΊ Π΄ΠΎ compat_setsockopt(), Π½ΠΎ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π½Π°ΠΏΠ°Π΄ΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ Π΄ΠΎΠ±ΠΈΠ΅ ΠΈ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ°Π½ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎΡΠΈ ΡΠΎ ΠΈΠΌΠΈΡΠ°.
ΠΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΠΎ ΠΏΠΎΡΠ΅Π±Π΅Π½ root ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ ΠΈ Π΄Π° ΡΠ° ΠΈΡΠΊΠΎΡΠΈΡΡΠΈ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ° ΠΎΠ΄ ΡΠ°ΠΌΡ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, βuser namespacesβ Π΅ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ Π½Π° Ubuntu ΠΈ Fedora, Π½ΠΎ Π½Π΅ Π΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ Π½Π° Debian ΠΈ RHEL. ΠΠ°ΠΊΡΠΏΠ°ΡΠ° ΡΡΠΎ ΡΠ° ΠΏΠΎΠΏΡΠ°Π²Π° ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ° Π±Π΅ΡΠ΅ ΡΡΠ²ΠΎΠ΅Π½Π° Π²ΠΎ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° Linux Π½Π° 13 Π°ΠΏΡΠΈΠ». ΠΠΆΡΡΠΈΡΠ°ΡΠ°ΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π²Π΅ΡΠ΅ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈ ΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ Π½Π° Debian, Arch Linux ΠΈ Fedora. ΠΠΎ Ubuntu, RHEL ΠΈ SUSE, Π°ΠΆΡΡΠΈΡΠ°ΡΠ°ΡΠ° ΡΠ΅ Π²ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°.
ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΡΠ΅ ΡΠ°Π²ΡΠ²Π° Π²ΠΎ ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° xt_compat_target_from_user() ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π°ΡΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° ΠΏΡΠΈ Π·Π°ΡΡΠ²ΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΡΡΠΊΡΡΡΠΈΡΠ΅ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΡΠ·ΠΈΡΠ° ΠΎΠ΄ 32-Π±ΠΈΡΠ½Π° Π²ΠΎ 64-Π±ΠΈΡΠ½Π° ΡΠ΅ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡΠ°. ΠΡΠ΅ΡΠΊΠ°ΡΠ° Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ΅ΡΠΈΡΠΈ Π½ΡΠ»Π° Π±Π°ΡΡΠΈ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°Ρ Π½Π° ΠΊΠΎΡΠ° Π±ΠΈΠ»ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΡΠ° Π½Π°Π΄Π²ΠΎΡ ΠΎΠ΄ Π΄ΠΎΠ΄Π΅Π»Π΅Π½ΠΈΠΎΡ Π±Π°ΡΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΡΠΎ ΠΏΠΎΠΌΠ΅ΡΡΡΠ²Π°ΡΠ΅ 0x4C. ΠΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ° ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊΠΎ Π΄ΠΎΠ²ΠΎΠ»Π½Π° Π·Π° Π΄Π° ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄Π΅ Π΅ΠΊΡΠΏΠ»ΠΎΠ°Ρ ΡΡΠΎ ΠΌΡ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ Π½Π° Π½Π΅ΠΊΠΎΡ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ root ΠΏΡΠ°Π²Π° - ΡΠΎ Π±ΡΠΈΡΠ΅ΡΠ΅ Π½Π° m_list-> ΡΠ»Π΅Π΄Π΅Π½ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π°Ρ Π²ΠΎ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° msg_msg, Π±Π΅Π° ΡΠΎΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈ Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΏΠΎ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° (ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅-ΠΏΠΎ-ΡΠ»ΠΎΠ±ΠΎΠ΄Π½ΠΎ), ΡΡΠΎ ΠΏΠΎΡΠΎΠ° Π±Π΅ΡΠ΅ ΠΈΡΠΊΠΎΡΠΈΡΡΠ΅Π½Π° Π·Π° Π΄ΠΎΠ±ΠΈΠ²Π°ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° Π°Π΄ΡΠ΅ΡΠΈ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ Π΄ΡΡΠ³ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΠΏΡΠ΅ΠΊΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΈΡΠ° ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΠΎΡ ΠΏΠΎΠ²ΠΈΠΊ msgsnd().
ΠΠ·Π²ΠΎΡ: opennet.ru