Уязвимый пингвин

Исследователи из компании SentinelOne обнаружили RCE-уязвимость CVE-2021-43267 в одном из модулей линуксовского ядра — Transparent Inter Process Communication (TIPC). Эту уязвимость можно использовать как локально, так и удалённо, чтобы получить права суперпользователя. Исследователи оценили её критичность на 9.8 из 10 по шкале CVSS.
TIPC — это протокол транспортного уровня, позволяющий нодам в динамических кластерах общаться эффективно и бесперебойно. Он подходит для этих целей лучше, чем прочие похожие протоколы, например, TCP.
Найденная уязвимость касается нового типа сообщений, MSG_CRYPTO, который появился осенью 2020 года. Он позволяет нодам в кластере пересылать криптографические ключи.
Вся проблема в неидеально срабатывающей валидации. Встроенная проверка всё валидирует: смотрит на размер хедера и сообщения, выделяя под них память. Но вот длину ключа, появившегося в MSG_CRYPTO, она не проверяет. Таким образом, злоумышленник смог бы создать пакет, вызывающий переполнение кучи, и передать произвольный код: например, создать пакет на 20 байтов, указав, что там всего 10, и успешно пройти валидацию.
Есть и хорошие новости. Во-первых, исследователи не обнаружили никаких атак, практически использовавших бы эту уязвимость. Во-вторых, для атаки нужно, чтобы TIPC в системе был включен: он хоть и идёт из коробки, по умолчанию как раз выключен.
Уязвимость есть в версиях 5.10 и 5.15. В новое обновление, вышедшее в конце октября 2021, уже включен патч.