Уязвимост Π² подсистСмата Π½Π° ядрото Π½Π° Linux Netfilter

Π‘Π΅ΡˆΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π° уязвимост (CVE-2021-22555) Π² Netfilter, подсистСма Π½Π° ядрото Π½Π° Linux, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, която позволява Π½Π° Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ root ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π² систСмата, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π΅ Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. ΠŸΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ Π΅ Π·Π° тСстванС Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π½Π° Сксплойт, ΠΊΠΎΠΉΡ‚ΠΎ заобикаля Π·Π°Ρ‰ΠΈΡ‚Π½ΠΈΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ KASLR, SMAP ΠΈ SMEP. Π˜Π·ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΡ‚ΠΊΡ€ΠΈ уязвимостта, ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π½Π°Π³Ρ€Π°Π΄Π° ΠΎΡ‚ $20 XNUMX ΠΎΡ‚ Google Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° заобикалянС Π½Π° изолацията Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Π½Π° Kubernetes Π² kCTF ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΎΡ‚ ядрото 2.6.19, пуснато ΠΏΡ€Π΅Π΄ΠΈ 15 Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΈ Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½ ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠ° Π² ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ IPT_SO_SET_REPLACE ΠΈ IP6T_SO_SET_REPLACE, която причинява ΠΏΡ€Π΅ΠΏΡŠΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° спСциално Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Ρ‡Ρ€Π΅Π· ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° setsockopt Π² Ρ€Π΅ΠΆΠΈΠΌ compat. ΠŸΡ€ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΈ обстоятСлства само root потрСбитСлят ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ° compat_setsockopt(), Π½ΠΎ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡ‚Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Π°Ρ‚Π°ΠΊΠ°Ρ‚Π°, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈ ΠΈ ΠΎΡ‚ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π½Π° систСми с Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° потрСбитСлски пространства ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°.

ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° създадС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с ΠΎΡ‚Π΄Π΅Π»Π΅Π½ root ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° уязвимостта ΠΎΡ‚Ρ‚Π°ΠΌ. НапримСр β€žΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡΠΊΠΈΡ‚Π΅ пространства ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°β€œ са Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π² 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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€