Удалённая уязвимость в ядре Linux, проявляющаяся при использовании протокола TIPC
В модуле ядра Linux, обеспечивающем работу сетевого протокола TIPC, выявлена уязвимость ( CVE-2022-0435 ). Она потенциально позволяет выполнить свой код на уровне ядра через отправку специально оформленного сетевого пакета. Проблема затрагивает только системы с загруженным модулем ядра tipc.ko и настроенным стеком TIPC, который обычно используется в кластерах и по умолчанию не активирован в неспециализированных дистрибутивах Linux.
Уязвимость вызвана переполнением стека, происходящем при обработке пакетов, значение поля с числом узлов участников домена, в которых превышает 64. Для хранения параметров узлов в модуле tipc.ko используется фиксированный массив "u32 members64", но в процессе обработки указанного в пакете номера узла не выполняется проверка значения "member_cnt", что позволяет использовать значения больше 64 для контролируемой перезаписи данных в области памяти, следующей в стеке после структуры "dom_bef".
Приводящая к уязвимости ошибка была внесена 15 июня 2016 года и вошла в состав ядра Linux 4.8. Уязвимость устранена в выпусках ядра Linux 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 и 4.9.301. В ядрах большинства дистрибутивов проблема пока остаётся неисправленной: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.