ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π½Π° Π΅ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡ (CVE-2021-29154) Π²ΠΎ ΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΡ eBPF, ΠΊΠΎΡ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΡΠ°ΠΊΡΠ²Π°ΡΠΈ Π·Π° ΡΠ»Π΅Π΄Π΅ΡΠ΅, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ ΠΈ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΡΠΎΠΎΠ±ΡΠ°ΡΠ°ΡΠΎΡ, ΠΈΠ·Π²ΡΡΠ΅Π½ΠΈ Π²ΠΎ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° Linux Π²ΠΎ ΡΠΏΠ΅ΡΠΈΡΠ°Π»Π½Π° Π²ΠΈΡΡΡΠ΅Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° ΡΠΎ JIT, ΡΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π½ΠΈΠ²Π½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ. ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΠ²Π° Π΄ΠΎ ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° 5.11.12 (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ) ΠΈ ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ Π΅ ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ Π²ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈΡΠ΅ (Debian, Ubuntu, RHEL, Fedora, SUSE, Arch). ΠΠΎΠΏΡΠ°Π²ΠΊΠ°ΡΠ° Π΅ Π΄ΠΎΡΡΠ°ΠΏΠ½Π° ΠΊΠ°ΠΊΠΎ Π»Π΅ΠΏΠ΅Π½ΠΊΠ°.
Π‘ΠΏΠΎΡΠ΅Π΄ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΡΠΈΡΠ΅ ΠΊΠΎΠΈ ΡΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π»Π΅ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ°, ΡΠΈΠ΅ ΡΡΠΏΠ΅Π°Π»Π΅ Π΄Π° ΡΠ°Π·Π²ΠΈΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡΠ°ΡΠ° Π·Π° 32- ΠΈ 64-Π±ΠΈΡΠ½ΠΈ x86 ΡΠΈΡΡΠ΅ΠΌΠΈ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΎΠ΄ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ°Π½ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ. Π‘Π΅ΠΏΠ°ΠΊ, Red Hat Π·Π°Π±Π΅Π»Π΅ΠΆΡΠ²Π° Π΄Π΅ΠΊΠ° ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎΡΡΠ° Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ ΡΠΎΠ° Π΄Π°Π»ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠΎΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ eBPF Π΅ Π΄ΠΎΡΡΠ°ΠΏΠ΅Π½ Π·Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° RHEL ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π΄ΡΡΠ³ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ Π½Π° Linux Π²ΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°, ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠΈΡΠ° Π°ΠΊΠΎ Π΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ BPF JIT ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΈΠΌΠ° ΠΏΡΠ°Π²Π° CAP_SYS_ADMIN. ΠΠ°ΠΊΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΡΠ²Π° Π΄Π° ΡΠ΅ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈ BPF JIT ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°: echo 0 > /proc/sys/net/core/bpf_jit_enable
ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ ΠΎΠ΄ Π³ΡΠ΅ΡΠΊΠ° Π²ΠΎ ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠΌΠ΅ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π·Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ Π·Π° ΡΠ°Π·Π³ΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ ΠΌΠ°ΡΠΈΠ½ΡΠΊΠΈ ΠΊΠΎΠ΄ Π½Π° ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅ΡΠΎΡ JIT. ΠΡΠΎΠ±Π΅Π½ΠΎ, ΠΊΠΎΠ³Π° ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΡΠ°Π·Π³ΡΠ°Π½ΡΠ²Π°ΡΠ΅, Π½Π΅ ΡΠ΅ Π·Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π΄Π΅ΠΊΠ° ΠΏΠΎΠΌΠ΅ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΎΡΠΊΠ°ΠΊΠΎ ΡΠ΅ ΠΏΠΎΠΌΠΈΠ½Π΅ Π½ΠΈΠ· ΡΠ°Π·Π°ΡΠ° Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠ°. ΠΠ²ΠΎΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ Π½Π° Π°Π½ΠΎΠΌΠ°Π»Π΅Π½ ΠΌΠ°ΡΠΈΠ½ΡΠΊΠΈ ΠΊΠΎΠ΄ ΠΈ Π½Π΅Π³ΠΎΠ²ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ.
ΠΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ ΠΎΠ΄Π±Π΅Π»Π΅ΠΆΠΈ Π΄Π΅ΠΊΠ° ΠΎΠ²Π° Π½Π΅ Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π°ΡΠ° ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡ Π²ΠΎ ΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΡ eBPF Π½Π΅ΠΎΠ΄Π°ΠΌΠ½Π°. ΠΠ° ΠΊΡΠ°ΡΠΎΡ Π½Π° ΠΌΠ°ΡΡ, Π±Π΅Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π½ΠΈ ΡΡΡΠ΅ Π΄Π²Π΅ ΠΏΡΠΎΠΏΡΡΡΠΈ Π²ΠΎ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ (CVE-2020-27170, CVE-2020-27171), ΡΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ eBPF Π·Π° Π΄Π° ΡΠ΅ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈ Π·Π°ΡΡΠΈΡΠ°ΡΠ° ΠΎΠ΄ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠΈ ΠΎΠ΄ ΠΊΠ»Π°ΡΠ°ΡΠ° Specter, ΡΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΠΊΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈ Π·Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ . ΠΠ°ΠΏΠ°Π΄ΠΎΡ Spectre Π±Π°ΡΠ° ΠΏΡΠΈΡΡΡΡΠ²ΠΎ Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° ΡΠ΅ΠΊΠ²Π΅Π½ΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π²ΠΎ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ°Π½ ΠΊΠΎΠ΄ ΡΡΠΎ Π΄ΠΎΠ²Π΅Π΄ΡΠ²Π° Π΄ΠΎ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅. ΠΠΎ eBPF, ΠΏΡΠΎΠ½Π°ΡΠ΄Π΅Π½ΠΈ ΡΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π½Π°ΡΠΈΠ½ΠΈ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°ΠΊΠ²ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠ΅ΠΊΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΈΠΈ ΡΠΎ BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΊΠΎΠΈ ΡΠ΅ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°Π°Ρ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅.
Π Π°Π½Π»ΠΈΠ²ΠΎΡΡΠ° CVE-2020-27170 Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½Π° ΠΎΠ΄ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΈΡΠ° ΡΠΎ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π°ΡΠΎΡ Π²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΡΠΎΡ BPF ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΡΠ²Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΎΠ±Π»Π°ΡΡ Π½Π°Π΄Π²ΠΎΡ ΠΎΠ΄ Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° ΡΠ°ΠΌΠΏΠΎΠ½ΠΎΡ. Π Π°Π½Π»ΠΈΠ²ΠΎΡΡΠ° CVE-2020-27171 ΡΠ΅ Π΄ΠΎΠ»ΠΆΠΈ Π½Π° Π³ΡΠ΅ΡΠΊΠ° Π½Π° ΠΏΠΎΡΠΏΠΎΠ»Π½ΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ΅Π»ΠΈ Π±ΡΠΎΠ΅Π²ΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π°ΡΠΈ, ΡΡΠΎ Π΄ΠΎΠ²Π΅Π΄ΡΠ²Π° Π΄ΠΎ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π½Π°Π΄Π²ΠΎΡ ΠΎΠ΄ Π±Π°ΡΠ΅ΡΠΎΡ. ΠΠ²ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π²Π΅ΡΠ΅ ΡΠ΅ ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ΠΈ Π²ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ 5.11.8, 5.10.25, 5.4.107, 4.19.182 ΠΈ 4.14.227, Π° ΡΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ ΠΈ Π²ΠΎ Π°ΠΆΡΡΠΈΡΠ°ΡΠ°ΡΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ Π½Π° ΠΠΈΠ½ΡΠΊΡ. ΠΡΡΡΠ°ΠΆΡΠ²Π°ΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΡΠ° ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡΠ° ΡΡΠΎ ΠΌΡ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ°Π½ΠΈΠΎΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ.
ΠΠ·Π²ΠΎΡ: opennet.ru