Открих уязвимост в реализацията на TIPC на ядрото на Linux

Наскоро новината съобщи това изследовател по сигурността идентифицира критична уязвимост (вече изброени под CVE-2021-43267) при прилагането на мрежовия протокол TIPC доставя се в ядрото на Linux, което позволява дистанционно изпълнение на код с привилегии на ядрото чрез изпращане на специално изработен мрежов пакет.

Опасността от проблема е смекчена от факта, че атаката изисква изрично активиране на TIPC поддръжка в системата (чрез зареждане и конфигуриране на модула на ядрото tipc.ko), което не се прави по подразбиране при не-Linux дистрибуции.specialized.

CodeQL е машина за анализ, която ви позволява да изпълнявате заявки за вашия код. От гледна точка на сигурността, това може да ви позволи да намерите уязвимости, просто като опишете външния им вид. След това CodeQL ще бъде активен и ще намери всички случаи на тази уязвимост.

TIPC се поддържа от ядрото на Linux 3.19, но кодът, водещ до уязвимостта, беше включен в ядрото 5.10.. Протоколът TIPC първоначално е разработен от Ericsson, той е предназначен да организира междупроцесна комуникация в клъстер и се активира основно на възлите на клъстера.

TIPC може да работи както през Ethernet, така и през UDP (мрежов порт 6118). В случай на работа през Ethernet, атаката може да се извърши от локалната мрежа, а когато се използва UDP, от глобалната мрежа, ако портът не е покрит от защитна стена. Атаката може да бъде извършена и от локален потребител без привилегии на хоста. За да активирате TIPC, трябва да заредите модула на ядрото tipc.ko и да конфигурирате връзката към мрежовия интерфейс, като използвате netlink или помощната програма tipc.

Протоколът е реализиран в модул на ядрото в комплект с всички основни дистрибуции на Linux. Когато се зареди от потребител, той може да се използва като конектор и може да бъде конфигуриран в интерфейс, използвайки netlink (или с помощта на инструмента за потребителско пространство tipc, който ще извършва тези netlink повиквания) като непривилегирован потребител.

TIPC може да бъде конфигуриран да работи през протокол на носител, като Ethernet или UDP (в последния случай ядрото слуша на порт 6118 за входящи съобщения от всяка машина). Тъй като потребител с ниски привилегии не може да създава необработени ethernet фреймове, настройването на носителя на UDP улеснява писането на локален експлойт.

Уязвимостта се проявява във функцията tipc_crypto_key_rc и е причинена от липса на подходяща проверка на съответствието между това, което е посочено в заглавката и действителния размер на данните при анализиране на пакети с тип MSG_CRYPTO, използвани за получаване на ключове за криптиране от други възли в клъстера, за да се декриптират по-късно съобщенията, изпратени от тези възли.

Размерът на данните, копирани в паметта, се изчислява като разлика между стойностите на полетата с размера на съобщението и размера на заглавката, но без да се взема предвид действителният размер на името на предавания алгоритъм за криптиране в съобщението и съдържанието на ключа.

Приема се, че размерът на името на алгоритъма е фиксиран и освен това за ключа се предава отделен атрибут с размера и атакуващият може да посочи стойност в този атрибут, която се различава от действителната стойност, което ще доведе до запис на опашката на съобщението извън разпределения буфер.

Уязвимостта е фиксирана в ядра 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, не са засегнати.

Накрая ако се интересувате да научите повече за това, можете да проверите подробностите В следващия линк.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.