ΠΠ΅ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ (CVE-2022-0435) Π² ΠΌΠΎΠ΄ΡΠ»Π° Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» TIPC (Transparent Inter-process Communication), ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΊΠΎΠ΄ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ ββΡΡΠ΅Π· ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π° ΠΌΡΠ΅ΠΆΠ° ΠΏΠ°ΠΊΠ΅Ρ. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π·Π°ΡΡΠ³Π° ΡΠ°ΠΌΠΎ ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΡΡ Π·Π°ΡΠ΅Π΄Π΅Π½ ΠΌΠΎΠ΄ΡΠ» Π½Π° ΡΠ΄ΡΠΎΡΠΎ tipc.ko ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ ΡΡΠ΅ΠΊ TIPC, ΠΊΠΎΠΉΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΊΠ»ΡΡΡΠ΅ΡΠΈ ΠΈ Π½Π΅ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π² Π½Π΅ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Linux Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ.
ΠΡΠ±Π΅Π»ΡΠ·Π²Π° ΡΠ΅, ΡΠ΅ ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π² ΡΠ΅ΠΆΠΈΠΌ "CONFIG_FORTIFY_SRC=y" (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² RHEL), ΠΊΠΎΠΉΡΠΎ Π΄ΠΎΠ±Π°Π²Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΡΠ° memcpy(), ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° Π΄ΠΎ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ ΡΠΏΠΈΡΠ°Π½Π΅ (ΡΠ΄ΡΠΎΡΠΎ ΡΠ΅ ΠΏΠ°Π½ΠΈΠΊΡΠΎΡΠ²Π°). ΠΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈ Π±Π΅Π· Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈ Π°ΠΊΠΎ ΠΈΠ·ΡΠ΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° canary Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° Π·Π°ΡΠΈΡΠ° Π½Π° ΡΡΠ΅ΠΊΠ°, ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Ρ ΠΏΡΠ°Π²Π° Π½Π° ΡΠ΄ΡΠΎΡΠΎ. ΠΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈΡΠ΅, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΠ²ΡΡΠ΄ΡΡ, ΡΠ΅ ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΡΠ° Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ Π΅ ΡΡΠΈΠ²ΠΈΠ°Π»Π½Π° ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠ°Π·ΠΊΡΠΈΡΠ° ΡΠ»Π΅Π΄ ΡΠΈΡΠΎΠΊΠΎ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΎΡΠΎ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈΡΠ΅.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π΅ ΠΏΡΠΈΡΠΈΠ½Π΅Π½Π° ΠΎΡ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° ΡΡΠ΅ΠΊΠ°, ΠΊΠΎΠ΅ΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΠΎΠ»Π΅ΡΠΎ Ρ Π±ΡΠΎΡ Π½Π° Π²ΡΠ·Π»ΠΈΡΠ΅ Π½Π° ΡΠ»Π΅Π½ Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π°, Π² ΠΊΠΎΠ΅ΡΠΎ Π½Π°Π΄Π²ΠΈΡΠ°Π²Π° 64. ΠΠ° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° Π²ΡΠ·Π΅Π» Π² ΠΌΠΎΠ΄ΡΠ»Π° tipc.ko, ΡΠΈΠΊΡΠΈΡΠ°Π½ ΠΌΠ°ΡΠΈΠ² βu32 members[64 ]β ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π½ΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ° Π½ΠΎΠΌΠ΅Ρ Π½Π° Π²ΡΠ·Π΅Π» Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° βmember_cntβ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΡ 64 Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½ΠΎ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΎΠ±Π»Π°ΡΡΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΊΡΠΌ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° "dom_bef" Π² ΡΡΠ΅ΠΊΠ°.
ΠΡΠ΅ΡΠΊΠ°ΡΠ°, Π²ΠΎΠ΄Π΅ΡΠ° Π΄ΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ°, Π±Π΅ΡΠ΅ Π²ΡΠ²Π΅Π΄Π΅Π½Π° Π½Π° 15 ΡΠ½ΠΈ 2016 Π³. ΠΈ Π±Π΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux 4.8. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π±Π΅ΡΠ΅ ΠΎΡΡΡΡΠ°Π½Π΅Π½Π° Π²ΡΠ² Π²Π΅ΡΡΠΈΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 ΠΈ 4.9.301. Π ΡΠ΄ΡΠ°ΡΠ° Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ ΠΎΡΡΠ°Π²Π° Π½Π΅ΠΎΡΡΡΡΠ°Π½Π΅Π½: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.
ΠΡΠΎΡΠΎΠΊΠΎΠ»ΡΡ TIPC ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ Ericsson, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄ΡΠΏΡΠΎΡΠ΅ΡΠ½Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ Π² ΠΊΠ»ΡΡΡΠ΅Ρ ΠΈ ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° Π³Π»Π°Π²Π½ΠΎ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ½ΠΈ Π²ΡΠ·Π»ΠΈ. TIPC ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠ΅Π· Ethernet ΠΈΠ»ΠΈ UDP (ΠΌΡΠ΅ΠΆΠΎΠ² ΠΏΠΎΡΡ 6118). ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ° ΠΏΡΠ΅Π· Ethernet Π°ΡΠ°ΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ ΠΎΡ Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ°, Π° ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° UDP ΠΎΡ Π³Π»ΠΎΠ±Π°Π»Π½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ°, Π°ΠΊΠΎ ΠΏΠΎΡΡΡΡ Π½Π΅ Π΅ ΠΏΠΎΠΊΡΠΈΡ ΡΡΡ Π·Π°ΡΠΈΡΠ½Π° ΡΡΠ΅Π½Π°. ΠΡΠ°ΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·Π²ΡΡΡΠ΅Π½Π° ΠΈ ΠΎΡ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π½Π° Ρ
ΠΎΡΡΠ°. ΠΠ° Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ TIPC, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Π° Π½Π° ΡΠ΄ΡΠΎΡΠΎ tipc.ko ΠΈ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ ΠΊΡΠΌ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° netlink ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° tipc.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru