В подсистеме Linux, известной как nvmet-tcp(NVMe-oF/TCP), предназначеннойдля обращения к NVMe-накопителям через сеть с использованием протокола TCP, была выявленауязвимость с идентификатором CVE-2023-5178 . Уязвимость потенциально позволяет злоумышленнику удаленно выполнить произвольный код на уровне ядра или, при наличии локального доступа, повысить свои привилегии в системе. В настоящее время исправление доступно в виде обновления.
Проблема проявляется с самой первой версии драйвера NVMe-oF/TCP и затрагивает системы с активированным сервером NVMe-oF/TCP (NVME_TARGET_TCP), который по умолчанию принимает соединения на сетевом порту 4420.
Уязвимость вызвана логической ошибкой, которая приводит к вызову функции nvmet_tcp_free_crypto дважды, что, в свою очередь, приводит к двойному освобождению некоторых указателей и разыменованию уже освобожденных адресов. Подобное аномальное поведение может вызвать использование памяти после ее освобождения (use-after-free) и двойное освобождение памяти (double-free) при обработке специально сконструированного клиентского сообщения сервером NVMe-oF/TCP. Важно отметить, что клиент может находиться как в локальной, так и в глобальной сети.