Ранливост Π²ΠΎ потсистСмот Π½Π° ΠΊΠ΅Ρ€Π½Π΅Π»ΠΎΡ‚ Π½Π° Linux Netfilter

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΠ²Π°Π½Π° Π΅ ранливост (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

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€