CVE-2026-80799 in Linux
Сводка
по VulDB • 04.09.2026
В ядре Linux устранена следующая уязвимость:
nfc: llcp: исправлено чтение за пределами буфера (OOB) и переполнение смещения типа u8 в парсерах TLV
Функции nfc_llcp_parse_gb_tlv() и nfc_llcp_parse_connection_tlv() содержат три связанные ошибки в циклах разбора TLV:
1. Переменная 'offset' объявлена как тип u8, тогда как tlv_array_len имеет тип u16. Когда данные TLV увеличивают значение offset за пределы 255, оно молча переполняется и сбрасывается до нуля, что приводит к бесконечным циклам или двойной обработке данных буфера.
2. Перед чтением tlv[0] (тип) и tlv[1] (длина) отсутствует проверка того, что offset+2 <= tlv_array_len. Обрезанный TLV вызывает чтение за пределами буфера (OOB) одного байта после его конца.
3. После чтения поля длины значения считываются без проверки условия offset+2+length <= tlv_array_len. Искусственно созданное значение length=0xFF в коротком буфере приводит к чтению до 255 байт за пределами буфера (OOB).
Обе функции доступны без аутентификации через nfc_llcp_set_remote_gb(), которая передает удаленные общие байты LLCP напрямую в nfc_llcp_parse_gb_tlv() без дополнительной проверки.
Исправление всех трех проблем заключается в расширении типа offset с u8 до u16 и добавлении проверок границ как для заголовка TLV, так и для поля значения перед каждым обращением к ним.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.