Π Netfilter, ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ, Π΅ ΠΎΡΠΊΡΠΈΡΠ° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ (CVE-2021-22555), ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ ΠΏΡΠ°Π²Π°ΡΠ° Π½Π° root Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, Π΄ΠΎΡΠΈ ΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΠ° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ ΡΠ°Π±ΠΎΡΠ΅Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠΉΡ, ΠΊΠΎΠΉΡΠΎ Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈΡΠ΅ Π½Π° Π·Π°ΡΠΈΡΠ° KASLR, SMAP ΠΈ SMEP. ΠΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡ, ΠΎΡΠΊΡΠΈΠ» ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ°, Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» Π½Π°Π³ΡΠ°Π΄Π° ΠΎΡ Google Π² ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° 20 Ρ ΠΈΠ»ΡΠ΄ΠΈ Π΄ΠΎΠ»Π°ΡΠ° Π·Π° ΠΎΡΠΊΡΠΈΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ Π·Π° Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΠ½Π΅ Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Kubernetes Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° kCTF.
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΠ΅ ΠΏΡΠΎΡΠ²ΡΠ²Π° ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ 2.6.19, ΠΈΠ·Π΄Π°Π΄Π΅Π½ΠΎ ΠΏΡΠ΅Π΄ΠΈ 15 Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΈ Π΅ ΠΏΡΠΈΡΠΈΠ½Π΅Π½ ΠΎΡ Π³ΡΠ΅ΡΠΊΠ° Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ IPT_SO_SET_REPLACE ΠΈ IP6T_SO_SET_REPLACE, ΠΊΠΎΡΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡΡΠ΅ΡΠ° ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΠΎΡΠΎΡΠΌΠ΅Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΡΡΠ΅Π· ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° setsockopt Π² ΡΠ΅ΠΆΠΈΠΌ compat. ΠΡΠΈ Π½ΠΎΡΠΌΠ°Π»Π½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° compat_setsockopt() ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·Π²ΡΡΡΠ΅Π½ΠΎ ΡΠ°ΠΌΠΎ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Ρ ΠΏΡΠ°Π²Π° root, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π·Π° Π°ΡΠ°ΠΊΠ° ΠΏΡΠ°Π²Π° ΡΡΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈ ΠΎΡ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π² ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ (user namespaces).
ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» 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->next Π² ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° msg_msg, ΡΡΠ·Π΄Π°Π²Π°ΠΉΠΊΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ ΡΠ»Π΅Π΄ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° (use-after-free), ΠΊΠΎΠ΅ΡΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π°Π΄ΡΠ΅ΡΠΈ ΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π΄ΡΡΠ³ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΡΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΈΡ ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ msgsnd().
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
