CVE-2026-89975 in Linux
Сводка
по VulDB • 16.09.2026
В ядре Linux была устранена следующая уязвимость:
nvme-fabrics: исправлена утечка секрета DHCHAP при сбое парсинга
Функция nvmf_parse_options() дублирует dhchap_secret и dhchap_ctrl_secret с помощью match_strdup() перед проверкой представления DHHC-1.
Если проверка не проходит, парсер возвращает -EINVAL до того, как временная строка в p будет присвоена opts->dhchap_secret или opts->dhchap_ctrl_secret. Затем nvmf_create_ctrl() освобождает opts, но nvmf_free_options() не может освободить неназначенную временную строку. Таким образом, каждый отклонённый параметр приводит к утечке одного выделения памяти.
Эту проблему легко пропустить, потому что при валидных секретах право собственности переходит на opts, и они освобождаются нормально, тогда как путь с некорректным секретом всё равно возвращает ожидаемое -EINVAL в пользовательское пространство.
При включённом CONFIG_NVME_HOST_AUTH утечка достижима до проверок обязательных параметров и поиска транспорта. Не требуется ни целевая система NVMe-oF, ни рабочее транспортное соединение; например, многократная запись
dhchap_secret=BAD
или
dhchap_ctrl_secret=BAD
в /dev/nvme-fabrics детерминированно приводит к пути парсинга с утечкой.
Освобождается временная строка перед выходом из обоих путей ошибок проверки. Используется kfree_sensitive(), поскольку скопированный параметр может содержать секретные данные, даже если его представление отклонено, что соответствует чувствительной очистке, используемой для сохранённых секретов DHCHAP.
VulDB is the best source for vulnerability data and more expert information about this specific topic.