CVE: CVE-2026-80799
Продукт: Linux Kernel
Дата публикации: 04.09.2026
Критичность: не определена
CVSS: нет данных
EPSS: 0,23%; процентиль 14,22%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В подсистеме NFC ядра Linux обнаружена уязвимость, позволяющая нарушителю вызвать чтение памяти за границами буфера. Ошибка связана с некорректной валидацией TLV-структур и переполнением смещения. Статья описывает механику атаки, условия эксплуатации и способы проверки исправления.
Основные характеристики
Уязвимость позволяет нарушителю, имеющему доступ к NFC-интерфейсу, заставить ядро прочитать данные за пределами выделенного буфера. Это может привести к утечке конфиденциальной информации или отказу в обслуживании.
- Тип ошибки: Out-of-Bounds Read (OOB Read) и Integer Overflow (u8 wrap).
- CVSS: Официальная оценка CVSS в NVD на момент публикации не присвоена.
- Условия атаки: Требуется физический доступ к NFC-устройству или возможность передачи данных через NFC-интерфейс.
- Эксплуатация: Публичные данные о подтвержденной эксплуатации в реальных атаках отсутствуют.
- EPSS: 0,23% (процентиль 14,22%).
Какие продукты и версии затронуты
Уязвимость затрагивает подсистему NFC в ядре Linux, а именно файл
net/nfc/llcp_commands.c. Ошибка присутствует в версиях ядра, где функция nfc_llcp_parse_gb_tlv() использует переменную offset типа u8 для обработки буферов, длина которых может превышать 255 байт.- Компонент:
net/nfc/llcp_commands.c
- Функции:
nfc_llcp_parse_gb_tlv(),nfc_llcp_parse_connection_tlv()
- Статус исправления: Патч включен в стабильные ветки ядра Linux (stable tree).
Причина уязвимости
Причина уязвимости кроется в некорректной обработке TLV (Type-Length-Value) структур в парсерах NFC LLCP. Разработчик использовал переменную
offset типа u8 (8 бит) для отслеживания позиции в буфере, тогда как длина буфера tlv_array_len имеет тип u16 (16 бит).Когда смещение превышает 255, происходит переполнение (wrap-around), и
offset сбрасывается в 0. Это приводит к бесконечным циклам или повторной обработке данных. Кроме того, перед чтением заголовка TLV (2 байта) и тела (length байт) отсутствуют проверки границ буфера, что позволяет читать память за его пределами.Как работает атака
Атакующий направляет специально сформированные данные через NFC-интерфейс в функцию
nfc_llcp_set_remote_gb(). Эта функция передает данные напрямую в nfc_llcp_parse_gb_tlv() без дополнительной валидации.В парсере
offset увеличивается при обработке каждого TLV-элемента. Если суммарная длина элементов превышает 255 байт, offset переполняется.Атакующий может также сформировать TLV с заголовком, указывающим на длину, которая превышает фактический размер буфера. Из-за отсутствия проверки
offset + 2 + length <= tlv_array_len ядро читает данные за границами буфера.Условия успешной эксплуатации
Для успешной эксплуатации уязвимости атакующему необходимо:
- Физический доступ: Наличие NFC-устройства в радиусе действия или возможность передачи данных через NFC-интерфейс.
- Загруженный модуль: Подсистема NFC должна быть активна в ядре.
- Специфичный payload: Формирование TLV-структур, вызывающих переполнение
u8или выход за границы буфера.
Возможный сценарий атаки
Сценарий атаки начинается с установления NFC-соединения. Атакующий отправляет пакет с TLV-данными, где суммарная длина превышает 255 байт. Функция
nfc_llcp_parse_gb_tlv() начинает обработку, и offset переполняется, возвращаясь к нулю.В результате парсер начинает повторно читать уже обработанные данные или переходит к чтению памяти за пределами буфера. Если атакующий контролирует содержимое памяти, он может извлечь конфиденциальные данные. В худшем случае, чтение недопустимой области памяти приводит к сбою ядра (kernel panic) и отказу в обслуживании.
Есть ли публичный эксплойт
На момент публикации CVE-2026-80799 публичные эксплойты или PoC (Proof of Concept) в открытом доступе не зафиксированы. Официальные источники содержат только описание уязвимости и патч для исправления. Отсутствие публичного эксплойта не гарантирует, что уязвимость не может быть эксплуатирована, но снижает вероятность массовых атак в краткосрочной перспективе.
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для этой уязвимости в открытых источниках не описаны. Однако можно обратить внимание на следующие неспецифичные признаки:
- Сбои ядра: Записи в
dmesgили системных журналах о kernel panic или segfault в подсистеме NFC.
- Аномальная активность NFC: Частые попытки установления NFC-соединений с неизвестными устройствами.
- Аномальное потребление памяти: Внезапные скачки потребления памяти процессами, связанными с NFC-драйверами.
Как обнаружить атаку
Для обнаружения попыток эксплуатации можно использовать следующие методы:
- Мониторинг логов: Анализ
dmesgиsyslogна наличие ошибок в подсистеме NFC, особенно связанных сnfc_llcp.
- Сетевой мониторинг: Отслеживание аномальной активности на NFC-интерфейсе, если это возможно в рамках архитектуры системы.
- Проверка версии ядра: Убедиться, что используется версия ядра, содержащая исправление (см. раздел «Проверка версии»).
Как проверить свою версию
Для проверки версии ядра и наличия исправления используйте следующие команды:
Bash:
uname -r
uname -a
cat /proc/version
Сравните полученную версию с официальными релизами ядра Linux, содержащими коммит
78b20c8eeacd2e44a2d8a4cb5316d3c521d90911. Если версия ядра старше даты коммита, система уязвима.Исправление
Единственным надежным способом устранения уязвимости является обновление ядра Linux до версии, содержащей патч. Патч изменяет тип переменной
offset с u8 на u16 и добавляет проверки границ буфера перед каждым доступом к данным.- Обновление ядра: Установите последнюю доступную версию ядра от вашего дистрибутива.
- Перезагрузка: После обновления ядра выполните перезагрузку системы для применения изменений.
Временные меры защиты
Пока обновление ядра не установлено, можно снизить риск эксплуатации:
- Отключение NFC: Если NFC-интерфейс не используется, отключите его на уровне ядра или через
rfkill.
- Ограничение доступа: Ограничьте физический доступ к устройствам с NFC-интерфейсом.
- Мониторинг: Усиленный мониторинг логов на предмет аномальной активности в подсистеме NFC.
Как проверить устранение уязвимости
Для проверки успешного применения исправления:
- Убедитесь, что версия ядра соответствует или превышает версию, содержащую коммит
78b20c8eeacd2e44a2d8a4cb5316d3c521d90911.
- Проверьте, что функция
nfc_llcp_parse_gb_tlv()использует переменнуюoffsetтипаu16(это можно сделать через анализ исходного кода ядра, если он доступен).
- Проведите функциональное тестирование NFC-интерфейса, чтобы убедиться в его работоспособности после обновления.
Вывод
CVE-2026-80799 представляет собой серьезную уязвимость в подсистеме NFC ядра Linux, позволяющую нарушителю вызвать чтение памяти за границами буфера. Хотя публичные эксплойты отсутствуют, риск эксплуатации существует, особенно в системах с активным NFC-интерфейсом. Рекомендуется как можно скорее обновить ядро до исправленной версии и при необходимости отключить NFC-интерфейс.
Официальные источники
- NVD — CVE-2026-80799
- FIRST EPSS — CVE-2026-80799
- nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers - kernel/git/stable/linux.git - Linux kernel stable tree
- nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers - kernel/git/stable/linux.git - Linux kernel stable tree
- nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers - kernel/git/stable/linux.git - Linux kernel stable tree
- nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers - kernel/git/stable/linux.git - Linux kernel stable tree
- nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers - kernel/git/stable/linux.git - Linux kernel stable tree
- nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers - kernel/git/stable/linux.git - Linux kernel stable tree
- nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers - kernel/git/stable/linux.git - Linux kernel stable tree
- nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers - kernel/git/stable/linux.git - Linux kernel stable tree
История обновлений статьи
- 09.09.2026 — Опубликована первая версия материала.
