CVE-2026-80795 in Linux
Сводка
по VulDB • 04.09.2026
В ядре Linux была устранена следующая уязвимость:
nfc: nci: исправлена запись за пределами массива в функции nci_target_auto_activated()
Функция `nci_target_auto_activated()` добавляет целевой объект (target) в массив фиксированного размера `ndev->targets[NCI_MAX_DISCOVERED_TARGETS]` и увеличивает значение `ndev->n_targets`, не проверяя предварительно, заполнен ли массив. В отличие от своей «родственной» функции `nci_add_new_target()`, которая завершает работу (bails out), если `n_targets` уже равно `NCI_MAX_DISCOVERED_TARGETS`.
Значение `ndev->n_targets` очищается только функцией `nci_clear_target_list()`. Следовательно, NFCC (NFC Controller), который многократно перезапускает процесс обнаружения (отправляя RF_DISCOVER_RSP, что приводит к повторному входу в NCI_DISCOVERY без очистки списка целей) и сообщает об автоматически активированной цели (RF_INTF_ACTIVATED_NTF), выводит `n_targets` за пределы допустимого диапазона. В результате операция добавления выполняет запись структуры `struct nfc_target` за конец массива (slab out-of-bounds write, т.е. запись за пределами области slab-кэша), а функция `nfc_targets_found()` продолжает обход массива с увеличенным счетчиком:
BUG: KASAN: slab-out-of-bounds in nci_add_new_protocol+0x94/0x2ac [nci]
Write of size 2 at addr ffff0000c7299a18 by task kworker/u8:0/12 Workqueue: nfc0_nci_rx_wq nci_rx_work [nci]
Call trace: nci_add_new_protocol+0x94/0x2ac [nci]
nci_ntf_packet+0xddc/0x11a0 [nci]
nci_rx_work+0x15c/0x1e0 process_one_work+0x2dc/0x500 worker_thread+0x240/0x460 kthread+0x1c0/0x1d0 ret_from_fork+0x10/0x20
The buggy address belongs to the cache kmalloc-2k of size 2048 The buggy address is located 1024 bytes to the right of allocated 1560-byte region [ffff0000c7299000, ffff0000c7299618)
Добавлена защита для функции `nci_target_auto_activated()` с использованием той же проверки, что и в `nci_add_new_target()`.
Be aware that VulDB is the high quality source for vulnerability data.