CVE-2026-90223 in Linux
Сводка
по VulDB • 17.09.2026
В ядре Linux была устранена следующая уязвимость:
nfc: llcp: ограничение парсинга TLV SNL в рамках skb и добавление проверок длины
Функция nfc_llcp_recv_snl() проходила по списку TLV SNL, используя пару смещения/длины типа u16, полученную из skb->len, без ограничения чтений фактическими данными skb. Это привело к трём проблемам:
- Для короткого кадра (skb->len < LLCP_HEADER_SIZE) происходило переполнение tlv_len вниз (underflow). - Заголовок каждого TLV (тип, длина) считывался без проверки наличия двух оставшихся байтов. - Объявленная длина TLV могла выходить за пределы буфера, а SDREQ с длиной == 0 приводил к переполнению size_t в выражении "service_name_len = length - 1", что вызывало чтение вне границ памяти при последующем вызове strncmp() / nfc_llcp_sock_from_sn(). Случай SDRES аналогичным образом считывал tlv[2]/tlv[3] без проверки длины.
Близко расположенное устройство NFC может получить доступ к этой уязвимости без аутентификации; активация связи LLCP происходит автоматически после NFC-DEP.
Проход по списку TLV осуществляется с использованием указателя, ограниченного skb_tail_pointer() над линейными данными skb, и перед использованием проверяется объявленная длина каждого TLV. Добавлены явные проверки длины для SDREQ (>= 1) и SDRES (ровно 2).
Обнаружено с помощью автоматизированных инструментов безопасности от компании 0sec (https://0sec.ai).
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.