Π ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ Π² ΡΠ΄ΡΠ΅ Linux ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TIPC (Transparent Inter-process Communication) Π²ΡΡΠ²Π»Π΅Π½Π° ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ (CVE-2021-43267), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄ΠΎΠ±ΠΈΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ ΡΠ΄ΡΠ°. ΠΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎ, ΡΡΠΎ Π΄Π»Ρ Π°ΡΠ°ΠΊΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ²Π½ΠΎΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ TIPC Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ (Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° tipc.ko), ΠΊΠΎΡΠΎΡΠ°Ρ Π² Π½Π΅ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Linux Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΡΠΎΡΠΎΠΊΠΎΠ» TIPC ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ΄ΡΠ° Linux 3.19, Π½ΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠΈΠΉ ΠΊ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΊΠΎΠ΄ Π±ΡΠ» Π²ΠΊΠ»ΡΡΡΠ½ Π² ΡΠΎΡΡΠ°Π² ΡΠ΄ΡΠ° 5.10. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΡΡΡΡΠ°Π½Π΅Π½Π° ΡΠ΄ΡΠ°Ρ 5.15.0, 5.10.77 ΠΈ 5.14.16. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ ΡΡΡΡΠ°Π½Π΅Π½Π° Π² Debian 11, Ubuntu 21.04/21.10, SUSE (Π² Π΅ΡΡ Π½Π΅ Π²ΡΠΏΡΡΠ΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ SLE15-SP4), RHEL (ΠΏΠΎΠΊΠ° Π½Π΅ Π΄Π΅ΡΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π±ΡΠ»ΠΎ Π»ΠΈ Π±ΡΠΊΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅) ΠΈ Fedora. ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΄ΡΠ° ΡΠΆΠ΅ Π²ΡΠΏΡΡΠ΅Π½ΠΎ Π΄Π»Ρ Arch Linux. ΠΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ Ρ ΡΠ΄ΡΠΎΠΌ ΡΡΠ°ΡΡΠ΅ 5.10, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Debian 10 ΠΈ Ubuntu 20.04, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ.
ΠΡΠΎΡΠΎΠΊΠΎΠ» TIPC ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Ericsson, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠΏΡΠΎΡΠ΅ΡΡΠ½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΡΡ Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π° ΡΠ·Π»Π°Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ². TIPC ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ²Π΅ΡΡ Ethernet, ΡΠ°ΠΊ ΠΈ ΠΏΠΎΠ²Π΅ΡΡ UDP (ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠΎΡΡ 6118). Π ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ²Π΅ΡΡ Ethernet Π°ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π° ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ, Π° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ UDP — ΠΈΠ· Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΡ Π½Π΅ ΠΏΡΠΈΠΊΡΡΡ ΠΌΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΡΠΌ ΡΠΊΡΠ°Π½ΠΎΠΌ. ΠΡΠ°ΠΊΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π° Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Ρ ΠΎΡΡΠ°. ΠΠ»Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ TIPC Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° tipc.ko ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΡΠ΅ΡΠ΅Π²ΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ netlink ΠΈΠ»ΠΈ ΡΡΠΈΠ»ΠΈΡΡ tipc.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ tipc_crypto_key_rc ΠΈ Π²ΡΠ·Π²Π°Π½Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ ΡΠ°Π·Π±ΠΎΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Ρ ΡΠΈΠΏΠΎΠΌ MSG_CRYPTO, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·Π»ΠΎΠ² Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ Ρ ΡΠ΅Π»ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Ρ ΡΡΠΈΡ ΡΠ·Π»ΠΎΠ². Π Π°Π·ΠΌΠ΅Ρ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌΡΡ Π² ΠΏΠ°ΠΌΡΡΡ Π΄Π°Π½Π½ΡΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»Π΅ΠΉ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, Π½ΠΎ Π±Π΅Π· ΡΡΡΡΠ° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°. ΠΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½, Π° Π΄Π»Ρ ΠΊΠ»ΡΡΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ, ΠΈ Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ Π² ΡΡΠΎΠΌ Π°ΡΡΠΈΠ±ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠ»ΠΈΡΠ°ΡΡΠ΅Π΅ΡΡ ΠΎΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π·Π°ΠΏΠΈΡΠΈ Ρ Π²ΠΎΡΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ°. struct tipc_aead_key { char alg_name[TIPC_AEAD_ALG_NAME]; unsigned int keylen; /* in bytes */ char key[]; };
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru