CVE-2026-80802 in Linux
Сводка
по VulDB • 04.09.2026
В ядре Linux была устранена следующая уязвимость:
nfc: fdp: ограничение длины чтения, сообщаемой устройством, и исправление утечки skb (socket buffer)
Функция `fdp_nci_i2c_read()` получает длину следующего пакета из двух байт, предоставленных устройством, и никогда не проверяет её корректность. Это значение типа u16 используется в качестве счетчика для вызова `i2c_master_recv()`, который записывает данные в 261-байтный буфер на стеке: злонамеренный, поддельный или неисправный контроллер (или устройство-посредник на шине I2C) может установить значение далеко за пределами размера буфера, что приведет к записи вне границ стека (stack out-of-bounds write), повреждая защитное слово (canary) и адрес возврата, либо ниже минимального размера кадра (непосредственно или путем усечения вычисленной суммы), из-за чего при снятии заголовка/LRC и чтении следующей длины произойдет выход за пределы короткого принятого пакета. Необходимо отклонять длину вне диапазона [FDP_NCI_I2C_MIN_PAYLOAD, FDP_NCI_I2C_MAX_PAYLOAD], так как уже поврежденный пакет не должен обрабатываться, и принудительно синхронизировать состояние.
В том же цикле на каждой итерации выделяется один skb (socket buffer) для данных, при этом предполагается наличие пакета длины, за которым следует пакет с данными; если устройство отправляет два пакета с данными в одном вызове, первый выделенный skb утекает, так как второе выделение перезаписывает его. Необходимо освобождать ранее выделенный skb перед выделением следующего.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.