ΠΠΎ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΠΠΈΠ½ΡΠΊΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π½ΠΈ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡ (CVE-2019-11683), ΡΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΠΎΠ΄ Π΄Π°Π»Π΅ΡΠΈΠ½Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅ ΠΎΠ΄Π±ΠΈΠ²Π°ΡΠ΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΡΠΎ ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠ°Π»Π½ΠΎ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ΠΈ UDP ΠΏΠ°ΠΊΠ΅ΡΠΈ (packet-of-death). ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ ΠΎΠ΄ Π³ΡΠ΅ΡΠΊΠ° Π²ΠΎ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠΎΡ udp_gro_receive_segment (net/ipv4/udp_offload.c) ΡΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ°ΡΠ° GRO (Generic Receive Offload) ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΎΡΡΠ΅ΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠΊΠΈΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° UDP ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠΎ Π½ΡΠ»Π° ΠΏΠΎΠ»Π½Π΅ΡΠ΅ (ΠΏΡΠ°Π·Π½Π° Π½ΠΎΡΠΈΠ²ΠΎΡΡ).
ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π²Π»ΠΈΡΠ°Π΅ ΡΠ°ΠΌΠΎ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ 5.0Π±ΠΈΠ΄Π΅ΡΡΠΈ GRO ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° UDP ΡΠΎΠΊΠ΅ΡΠΈΡΠ΅ Π±Π΅ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ Π²ΠΎ Π½ΠΎΠ΅ΠΌΠ²ΡΠΈ ΠΌΠΈΠ½Π°ΡΠ°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ ΡΡΠΏΠ΅Π° ΡΠ°ΠΌΠΎ Π΄Π° Π²Π»Π΅Π·Π΅ Π²ΠΎ Π½Π°ΡΠ½ΠΎΠ²ΠΎΡΠΎ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ. GRO ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ°ΡΠ° Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΡΠ° Π·Π°Π±ΡΠ·Π°ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ Π΄ΠΎΡΠ΄ΠΎΠ²Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠΎ Π°Π³ΡΠ΅Π³ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π²ΠΎ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΠΊΠΎΠΈ Π½Π΅ Π±Π°ΡΠ°Π°Ρ ΠΏΠΎΡΠ΅Π±Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ΅ΠΊΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ.
ΠΠ° TCP, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π½Π΅ ΡΠ΅ ΡΠ°Π²ΡΠ²Π°, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΎΠ²ΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° Π°Π³ΡΠ΅Π³Π°ΡΠΈΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π±Π΅Π· ΡΠΎΠ²Π°Ρ.
Π Π°Π½Π»ΠΈΠ²ΠΎΡΡΠ° Π΄ΠΎΡΠ΅Π³Π° Π΅ ΠΏΠΎΠΏΡΠ°Π²Π΅Π½Π° ΡΠ°ΠΌΠΎ Π²ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° Π»Π΅ΠΏΠ΅Π½ΠΊΠ°, ΠΊΠΎΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΠΎ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ Π΅ ΠΎΠ±ΡΠ°Π²Π΅Π½ΠΎ (Π²ΡΠ΅ΡΠ°ΡΠ½ΠΎΡΠΎ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ 5.0.11 ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ΠΎ Π½Π΅ ΡΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ). ΠΠ΄ ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠΈΡΠ΅ Π·Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ°, ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ 5.0 ΡΡΠΏΠ΅Π° Π΄Π° ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈ Π²ΠΎ Fedora 30, Π£Π±ΡΠ½ΡΡ 19.04, ΠΡΡ
ΠΠΈΠ½ΡΠΊΡ, Gentoo ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΡΡΠΎΡΠ°Π½ΠΎ Π°ΠΆΡΡΠΈΡΠ°Π½ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ. Debian, Ubuntu 18.10 ΠΈ ΠΏΠΎΡΠ°Π½ΠΎ, RHEL/CentOS ΠΈ SUSE/OPENSUSE ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π½Π΅ Π²Π»ΠΈΡΠ°Π΅.
ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π±Π΅ΡΠ΅ ΠΎΡΠΊΡΠΈΠ΅Π½ ΠΊΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΠ²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌ Π·Π° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ Π·Π° Π·Π°ΠΌΠ°Π³Π»ΡΠ²Π°ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄Π΅Π½ ΠΎΠ΄ Google syzbot ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΠΠ‘ΠΠ (KernelAddressSanitizer), ΡΠΎ ΡΠ΅Π» Π΄Π° ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π°Ρ Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° ΠΈ ΡΠ°ΠΊΡΠΈ Π·Π° Π½Π΅ΡΠΎΡΠ΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ°, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄Π΅Π½ΠΈ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠΊΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ΄ Π²ΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠΊΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠΎΠΈ Π½Π΅ ΡΠ΅ Π½Π°ΠΌΠ΅Π½Π΅ΡΠΈ Π·Π° ΡΠ°ΠΊΠ²ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΈΠΈ.
ΠΠ·Π²ΠΎΡ: opennet.ru