Vulnerabbiltà remota fl-implimentazzjoni tal-protokoll TIPC fil-kernel tal-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, проблеме не подвержены.

Il-protokoll TIPC kien oriġinarjament żviluppat minn Ericsson, iddisinjat biex jorganizza komunikazzjoni bejn il-proċessi fi cluster u huwa attivat prinċipalment fuq cluster nodes. TIPC jista 'jopera jew fuq Ethernet jew UDP (port tan-netwerk 6118). Meta taħdem fuq Ethernet, l-attakk jista 'jitwettaq min-netwerk lokali, u meta tuża UDP, min-netwerk globali jekk il-port ma jkunx kopert minn firewall. L-attakk jista 'jitwettaq ukoll minn utent lokali mhux privileġġjat tal-host. Biex tattiva TIPC, trid tniżżel il-modulu tal-kernel tipc.ko u tikkonfigura l-irbit mal-interface tan-netwerk billi tuża netlink jew l-utilità 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[]; };

Vulnerabbiltà remota fl-implimentazzjoni tal-protokoll TIPC fil-kernel tal-Linux


Sors: opennet.ru

Żid kumment