Faʻafitauli mamao i le faʻatinoina o le TIPC protocol i le fatu Linux

В поставляемой в ядре 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, проблеме не подвержены.

O le TIPC protocol na fa'avae muamua e Ericsson, na fuafuaina e fa'atulaga feso'ota'iga va'ava'ai i totonu o se fuifui ma fa'agaoioia i luga o nodes fuifui. E mafai e le TIPC ona galue i luga ole Ethernet po'o le UDP (taulaga feso'ota'iga 6118). Pe a galue i luga o Ethernet, e mafai ona faia le osofaʻiga mai le fesoʻotaʻiga i le lotoifale, ma pe a faʻaaogaina le UDP, mai le fesoʻotaʻiga i le lalolagi pe afai e le o ufiufi le taulaga i se pa puipui. O le osofaʻiga e mafai foi ona faia e se tagata faʻaoga le faʻaogaina i le lotoifale o le talimalo. Ina ia faʻagaoioia le TIPC, e te manaʻomia le siiina mai o le tipc.ko kernel module ma faʻapipiʻi le fusia i le fesoʻotaʻiga fesoʻotaʻiga e faʻaaoga ai le netlink poʻo le tipc utility.

Уязвимость проявляется в функции tipc_crypto_key_rc и вызвана отсутствием должной проверки соответствия указанного в заголовке и фактического размера данных при разборе пакетов с типом MSG_CRYPTO, используемых для получения ключей шифрования от других узлов а кластере с целью последующей расшифровки сообщений, отправляемых с этих узлов. Размер копируемых в память данных вычисляется как разница между значений полей с размером сообщения и размером заголовка, но без учёта фактического размера передаваемого в сообщении названия алгоритма шифрования и содержимого ключа. Подразумевается, что размер названия алгоритма фиксирован, а для ключа дополнительно передаётся отдельный атрибут с размером, и атакующий может указать в этом атрибуте значение, отличающееся от фактического, что приведёт к записи хвоста сообщения за пределы выделенного буфера. struct tipc_aead_key { char alg_name[TIPC_AEAD_ALG_NAME]; unsigned int keylen; /* in bytes */ char key[]; };

Faʻafitauli mamao i le faʻatinoina o le TIPC protocol i le fatu Linux


puna: opennet.ru

Faaopoopo i ai se faamatalaga