Π ΠΌΠΎΠ΄ΡΠ»Π΅ ΡΠ΄ΡΠ° Linux, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TIPC (Transparent Inter-process Communication), Π²ΡΡΠ²Π»Π΅Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ (CVE-2022-0435), ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΄ΡΠ° ΡΠ΅ΡΠ΅Π· ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡΠ΅ΠΌΡ Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΡΠ΄ΡΠ° tipc.ko ΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΡΡΠ΅ΠΊΠΎΠΌ TIPC, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ°Ρ ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ Π² Π½Π΅ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Linux.
ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΡΠ΄ΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ «CONFIG_FORTIFY_SRC=y» (ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² RHEL), Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π³ΡΠ°Π½ΠΈΡ Π² ΡΡΠ½ΠΊΡΠΈΡ memcpy(), ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠΉ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΡ (ΡΠ΄ΡΠΎ Π²ΠΏΠ°Π΄Π°Π΅Ρ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ panic). ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ ΠΈ ΠΏΡΠΈ ΡΡΠ΅ΡΠΊΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ ΠΊΠ°Π½Π°ΡΠ΅Π΅ΡΠ½ΡΡ ΠΌΠ΅ΡΠΊΠ°Ρ , ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΡΡΠ΅ΠΊΠ°, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ ΡΠ΄ΡΠ°. ΠΡΡΠ²ΠΈΠ²ΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π·Π°ΡΠ²Π»ΡΡΡ, ΡΡΠΎ ΡΠ΅Ρ Π½ΠΈΠΊΠ° ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½Π° ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΠΊΡΡΡΠ° ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ .
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π²ΡΠ·Π²Π°Π½Π° ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΊΠ°, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ Ρ ΡΠΈΡΠ»ΠΎΠΌ ΡΠ·Π»ΠΎΠ² ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² Π΄ΠΎΠΌΠ΅Π½Π°, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ 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