ΠΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΎΡ Π΅ΠΊΠΈΠΏΠ° Π½Π° 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