В Linux подсистемата nvmet-tcp (NVMe-oF/TCP), която позволява достъп до NVMe устройства по мрежата (NVM Express over Fabrics), използвайки TCP протокол, е намерена уязвимост (CVE-2023-5178), която потенциално позволява отдалечено изпълнение на код в ядрото или, при наличието на локален достъп, повишаване на привилегиите в системата. Патч за поправка е наличен. Проблемът се проявява още от първата версия на драйвера NVMe-oF/TCP (в доклада за уязвимостта се споменава ядрото Linux 5.15, но поддръжката на NVMe-oF/TCP е добавена в ядрото 5.0). Уязвими са системи с включен сървър NVMe-oF/TCP (NVME_TARGET_TCP), който по подразбиране приема връзки на мрежовия порт 4420.
Уязвимостта е причинена от логическа грешка, при която функцията nvmet_tcp_free_crypto е извикана два пъти и два пъти е освободила някои указатели, както и разыменовала освободени адреси. Такова поведение води до достъп до вече освободена област от паметта (use-after-free) и двойно освобождаване на памет (double-free) при обработка на съобщение от клиента, което е специално оформено за NVMe-oF/TCP и може да се намира както в локалната, така и в глобалната мрежа.
Източник: opennet.ru
