Π‘Π΅ΡˆΠ΅ Ρ€Π°Π·ΠΊΡ€ΠΈΡ‚Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° уязвимост Π² подсистСмата tty Π½Π° ядрото Π½Π° Linux

Π˜Π·ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΎΡ‚ Π΅ΠΊΠΈΠΏΠ° Π½Π° Google Project Zero ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ…Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° уязвимост (CVE-2020-29661) ΠΏΡ€ΠΈ внСдряванСто Π½Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€Π° TIOCSPGRP ioctl ΠΎΡ‚ подсистСмата tty Π½Π° ядрото Π½Π° Linux, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ…Π° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π·Π°Ρ‰ΠΈΡ‚Π½ΠΈΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π±ΠΈΡ…Π° ΠΌΠΎΠ³Π»ΠΈ Π΄Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚ Ρ‚Π°ΠΊΠΈΠ²Π° уязвимости.

Π“Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π°, причиняваща ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, бСшС ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½Π° Π² ядрото Π½Π° Linux Π½Π° 3 Π΄Π΅ΠΊΠ΅ΠΌΠ²Ρ€ΠΈ ΠΌΠΈΠ½Π°Π»Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ сС появява Π² ядра Π΄ΠΎ вСрсия 5.9.13, Π½ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ дистрибуции са ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π½Π° ядрото, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΌΠΈΠ½Π°Π»Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π° (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). Подобна уязвимост (CVE-2020-29660) бСшС ΠΎΡ‚ΠΊΡ€ΠΈΡ‚Π° Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ TIOCGSID ioctl, Π½ΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π²Π΅Ρ‡Π΅ Π΅ ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½Π° навсякъдС.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½ ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π²Π°Π½ΠΈΡ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° Π½Π°Π΄ΠΏΡ€Π΅Π²Π°Ρ€Π° Π² ΠΊΠΎΠ΄Π° drivers/tty/tty_jobctrl.c, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° създаванС Π½Π° условия Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ слСд освобоТдаванС, Сксплоатирани ΠΎΡ‚ потрСбитСлското пространство Ρ‡Ρ€Π΅Π· ioct ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΠΈ, ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° TIOCSPGRP. Π‘Π΅ΡˆΠ΅ дСмонстриран Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ Сксплойт Π·Π° Сскалация Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π½Π° Debian 10 с ядро ​​4.19.0-13-amd64.

Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π°Ρ‚Π° статия сС фокусира Π½Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π²ΡŠΡ€Ρ…Ρƒ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°Ρ‚Π° Π·Π° създаванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ Сксплойт, Π° ΠΏΠΎ-скоро Π²ΡŠΡ€Ρ…Ρƒ Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΈ инструмСнти ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ Π² ядрото Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° срСщу ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ уязвимости. Π˜Π·Π²ΠΎΠ΄ΡŠΡ‚ Π½Π΅ Π΅ ΡƒΡ‚Π΅ΡˆΠΈΡ‚Π΅Π»Π΅Π½, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΊΠ°Ρ‚ΠΎ сСгмСнтиранС Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π² ΠΊΡƒΠΏΡ‡ΠΈΠ½Π°Ρ‚Π° ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° слСд освобоТдаванСто ΠΉ Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ водят Π΄ΠΎ намаляванС Π½Π° производитСлността ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π°, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° CFI (Control Flow Integrity), която Π±Π»ΠΎΠΊΠΈΡ€Π° ΠΏΠΎΠ΄Π²ΠΈΠ·ΠΈ Π² ΠΏΠΎ-ΠΊΡŠΡΠ½ΠΈΡ‚Π΅ Π΅Ρ‚Π°ΠΏΠΈ Π½Π° Π°Ρ‚Π°ΠΊΠ°, ΠΈΠΌΠ° Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅.

ΠšΠΎΠ³Π°Ρ‚ΠΎ обмислятС ΠΊΠ°ΠΊΠ²ΠΎ Π±ΠΈ Π½Π°ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° Π² Π΄ΡŠΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π΅Π½ ΠΏΠ»Π°Π½, Π΅Π΄Π½ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ сС откроява, Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡƒΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°Π½ΠΈ статични Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° бСзопасни Π·Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π΅Π·ΠΈΡ†ΠΈ ΠΊΠ°Ρ‚ΠΎ Rust ΠΈ C Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ΠΈ с Π±ΠΎΠ³Π°Ρ‚ΠΈ Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ (ΠΊΠ°Ρ‚ΠΎ Checked C) Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ„Π°Π·Π°Ρ‚Π° Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ ΠΊΠ»ΡŽΡ‡Π°Π»ΠΊΠΈ, ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ. ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΡΡŠΡ‰ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅ΠΆΠΈΠΌΠ° panic_on_oops, ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° структуритС Π½Π° ядрото Π² Ρ€Π΅ΠΆΠΈΠΌ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ систСмни повиквания Ρ‡Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ ΠΊΠ°Ρ‚ΠΎ seccomp.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

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