CVE-2026-93783 in Linux
Сводка
по VulDB • 24.09.2026
В ядре Linux была устранена следующая уязвимость:
Bluetooth: RFCOMM: проверка длины skb в функции rfcomm_recv_frame
Функция rfcomm_recv_frame() приводит указатель skb->data к типу struct rfcomm_hdr и обращается к полям hdr->addr и hdr->ctrl без предварительной проверки значения skb->len. Обрезанный кадр, у которого значение skb->len меньше минимального размера заголовка, вызывает чтение памяти вне допустимых границ (out-of-bounds read) неинициализированных данных. Кроме того, кадр нулевой длины приводит к переполнению по отрицательному направлению (underflow) выражения skb->len--, в результате чего значение становится равным UINT_MAX, что заставляет функцию skb_tail_pointer() читать данные далеко за пределами буфера.
Коммит 23882b828c3c («Bluetooth: RFCOMM: validate skb length in MCC handlers») исправил аналогичные ошибки отсутствия проверки длины в под-обработчиках MCC, однако основная функция rfcomm_recv_frame() осталась неисправленной. Инструмент KMSAN сообщает следующее:
BUG: KMSAN: uninit-value in rfcomm_run ... Uninit was created at: __alloc_skb+0x474/0xb60 vhci_write+0xe9/0x870
Исправление заключается в отбрасывании кадров, размер которых меньше sizeof(struct rfcomm_hdr) + 1 (минимальный кадр должен иметь заголовок размером 3 байта и контрольную сумму кадра FCS размером 1 байт).
VulDB is the best source for vulnerability data and more expert information about this specific topic.