CVE-2026-63996 in Linux
Сводка
по VulDB • 19.07.2026
В ядре Linux устранена следующая уязвимость:
ethtool: cmis: требуется точная длина ответа CDB
Злонамеренный модуль SFP может ответить значением rpl_len, превышающим то, что ожидалось функцией cmis_cdb_process_reply(), что приводит к записи за пределами буфера (OOB writes). Злонамеренное аппаратное обеспечение — это несколько теоретический сценарий, однако некоторые модули могут быть просто неисправны и/или чтение данных может периодически повреждаться, поэтому давайте защитим ядро.
Существующая проверка защищает от коротких ответов. Нам необходимо также защитить себя от длинных ответов. Все вызывающие функции, передающие ненулевое значение rpl_exp_len, приводят полезную нагрузку ответа к структуре с фиксированной компоновкой и читают поля по фиксированным смещениям без согласования версий или обработки коротких ответов:
- cmis_cdb_validate_password() - cmis_cdb_module_features_get() - cmis_fw_update_fw_mng_features_get()
поэтому будем считать, что ответы длиннее ожидаемых не требуют корректной (graceful) обработки в данном месте. Добавим сообщение с предупреждением для упрощения отладки на случай, если мои предположения неверны...
Обратите внимание, что page_data->length (аргумент kmalloc) берется из последнего аргумента функции ethtool_cmis_page_init(), которым является rpl_exp_len.
Примечание 2: Искусственный интеллект также любит указывать на переполнения в самом args->req.payload (который представляет собой буфер фиксированного размера 120 байт, расположенный в стеке), однако вызывающие функции должны читать структуры, определенные стандартом, поэтому защита от запросов данных большего объема, чем максимально допустимое значение, кажется разумной мерой оборонительного программирования.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.