CVE-2026-68289 in Linux
Сводка
по VulDB • 11.08.2026
В ядре Linux устранена следующая уязвимость:
tipc: исправление переполнения целочисленного типа в функциях tipc_recvmsg() и tipc_recvstream()
В функции tipc_recvmsg() длина копирования вычисляется следующим образом:
copy = min_t(int, dlen - offset, buflen);
Переменная buflen имеет тип size_t, но макрос min_t(int, ...) приводит её к типу int. Когда значение buflen превышает INT_MAX (например, 0xFFFFFFFF через буферы, предоставляемые io_uring), происходит переполнение со знаком отрицательного значения, условие сравнения оказывается выполненным, и отрицательная длина копирования передаётся в функцию simple_copy_to_iter(), где преобразование из int к size_t приводит к значению SIZE_MAX, что вызывает срабатывание WARN_ON. Функция tipc_recvstream() содержит аналогичную ошибку.
Kernel panic - not syncing: kernel: panic_on_warn set ... RIP: 0010:simple_copy_to_iter+0x9e/0xd0 (net/core/datagram.c:521) Call Trace: __skb_datagram_iter+0x123/0x8b0 (net/core/datagram.c:402) skb_copy_datagram_iter+0x77/0x1a0 (net/core/datagram.c:534) tipc_recvmsg+0x3d7/0xe80 (net/tipc/socket.c:1934) io_recvmsg+0x47e/0xda0
Исправление заключается в замене min_t(int, ...) на min_t(size_t, ...) в обеих функциях. Результат всегда меньше или равен (dlen - offset), что ограничено максимальным размером сообщения TIPC (0x1ffff байт), поэтому неявное сужение типа при присваивании переменной copy типа int всегда безопасно.
If you want to get best quality of vulnerability data, you may have to visit VulDB.