CVE-2026-64535 in Linux
Сводка
по VulDB • 27.07.2026
В ядре Linux устранена следующая уязвимость:
nvmet-tcp: исправлена потенциальная ошибка Use-After-Free (UAF) при несовпадении контрольной суммы данных (ddgst mismatch).
Шивам Кумар обнаружил в ходе тестирования на наличие уязвимостей следующее поведение. Когда проверка контрольных сумм включена для соединения NVMe/TCP и возникает рассогласование контрольной суммы в пакете H2C_DATA, не являющемся последним, во время передачи данных на основе R2T (Ready To Transfer), обработчик ошибок контрольной суммы в функции nvmet_tcp_try_recv_ddgst() вызывает nvmet_req_uninit(), которая выполняет операцию percpu_ref_put() для очереди отправки команд (submission queue). При этом команда НЕ помечается как завершенная. Не устанавливается поле cqe->status, не изменяется rbytes_done и не сбрасываются никакие флаги.
Когда последующая фатальная ошибка инициирует разборку очереди, функция nvmet_tcp_uninit_data_in_cmds() перебирает все команды, проверяет условие nvmet_tcp_need_data_in() для каждой из них и обнаруживает, что уже деинициализированная команда всё ещё требует передачи данных (поскольку rbytes_done < transfer_len и cqe->status == 0). В результате функция nvmet_req_uninit() вызывается повторно для той же самой команды — происходит двойное выполнение percpu_ref_put() при единичном выполнении percpu_ref_get().
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.