Π 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