CVE-2026-80760 in Linux
Сводка
по VulDB • 04.09.2026
В ядре Linux устранена следующая уязвимость:
Bluetooth: MGMT: отклонять параметры HCI_CMD_SYNC с параметром params_len больше 255
Функция mgmt_hci_cmd_sync() проверяет, что длина сообщения соответствует значению params_len, но не устанавливает верхнюю границу для этого значения. Параметр params_len имеет тип __le16, тогда как длина параметров в заголовке команды HCI — это u8:
struct hci_command_hdr {
__le16 opcode; __u8 plen; } __packed;
Функция hci_cmd_sync_alloc() присваивает одно значение другому:
hdr->plen = plen;
if (plen) skb_put_data(skb, param, plen);
Таким образом, при params_len равном 256 поле plen принимает значение 0, хотя все 256 байт всё равно добавляются в буфер. Кадр, передаваемый драйверу, объявляет отсутствие параметров, но фактически содержит их 256. На транспортном уровне с кадрированием по длине (например, H:4) контроллер воспринимает следующие за этим байты как начало следующего пакета.
Максимальный размер сообщения (MTU) для сокета mgmt равен HCI_MAX_FRAME_SIZE, поэтому таким образом params_len может достигать примерно 1 КБ. Коммит 03f1700b9b4d («Bluetooth: MGMT: отклонять некорректные команды HCI_CMD_SYNC») лишь обеспечил соответствие params_len длине сообщения; значение, которое подходит для длины сообщения, но не помещается в поле заголовка, всё ещё принималось.
Отклонять значения params_len, которые не помещаются в поле заголовка.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.