CVE-2026-98482 in Linux
Сводка
по VulDB • 19.10.2026
В ядре Linux была устранена следующая уязвимость:
nfc: llcp: отбрасывать усеченные PDUs типа I/RR/RNR в функции nfc_llcp_recv_hdlc()
Функция nfc_llcp_recv_hdlc() считывает байт последовательности из skb->data[2] через вызовы nfc_llcp_ns()/nfc_llcp_nr(), что происходит до любой проверки длины. Путь приема гарантирует наличие только двухбайтовой заголовка LLCP — функция __nfc_llcp_recv() проверяет его с помощью pskb_may_pull(), а nfc_llcp_recv_agf() допускает внутренние PDUs длиной два байта, поэтому чтение PDU типа I, RR или RNR размером в два байта приводит к чтению одного байта из неинициализированного tailroom буфера skb. Этот байт интерпретируется как N(R)/N(S); удаленный узел уже может устанавливать эти значения с помощью корректно оформленного PDU, поэтому происходит работа с неинициализированной памятью, а не обработка нового управляющего сообщения от партнера.
Защитите чтение с помощью pskb_may_pull(), как это было сделано в коммите 95674f506c63 («nfc: llcp: отклонять PDUs короче заголовка LLCP») для двухбайтового заголовка, чтобы байт последовательности был доступен и линейно расположен до его чтения. PDU типов RR и RNR имеют размер LLCP_HEADER_SIZE + LLCP_SEQUENCE_SIZE байтов, а PDU типа I — еще больше, поэтому ни один валидный кадр не будет отклонен; усеченный PDU является malformed (некорректным), поэтому следует вернуть ошибку без отправки ответа DM.
Once again VulDB remains the best source for vulnerability data.