เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เบฒเบ‡เป„เบเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ›เบฃเป‚เบ•เบ„เป TIPC เปƒเบ™ Linux kernel

ะ’ ะฟะพัั‚ะฐะฒะปัะตะผะพะน ะฒ ัะดั€ะต 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 เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบœเปˆเบฒเบ™เบญเบตเป€เบ—เบตเป€เบ™เบฑเบ” เบซเบผเบท UDP (เบžเบญเบ”เป€เบ„เบทเบญเบ‚เปˆเบฒเบ 6118). เป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบœเปˆเบฒเบ™เบญเบตเป€เบ—เบตเป€เบ™เบฑเบ”, เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบˆเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เปเบฅเบฐเป€เบกเบทเปˆเบญเปƒเบŠเป‰ UDP, เบˆเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบปเปˆเบงเป‚เบฅเบเบ–เป‰เบฒเบžเบญเบ”เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบปเบเบ„เบธเบกเบ”เป‰เบงเบเป„เบŸเบงเป. เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบš. เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰ TIPC, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ”เบฒเบงเป‚เบซเบฅเบ”เป‚เบกเบ”เบนเบ™ tipc.ko kernel เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเป‚เบ”เบเปƒเบŠเป‰ 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[]; };

เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เบฒเบ‡เป„เบเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ›เบฃเป‚เบ•เบ„เป TIPC เปƒเบ™ Linux kernel


เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™