Nel sottosistema Linux nvmet-tcp (NVMe-oF/TCP), che consente l'accesso ai dispositivi NVMe tramite la rete (NVM Express over Fabrics) utilizzando il protocollo TCP, è stata scoperta una vulnerabilità (CVE-2023-5178) che potrebbe consentire l'esecuzione di codice arbitrario a livello di kernel da remoto o, con accesso locale, l'elevazione dei privilegi nel sistema. La correzione è attualmente disponibile sotto forma di patch. Il problema si manifesta fin dalla prima versione del driver NVMe-oF/TCP (nel rapporto sulla vulnerabilità è menzionato il kernel Linux 5.15, ma il supporto per NVMe-oF/TCP è stato aggiunto nel kernel 5.0). Sono vulnerabili i sistemi con NVMe-oF/TCP attivato server NVMe-oF/TCP (NVME_TARGET_TCP), che per impostazione predefinita accetta connessioni sulla porta di rete 4420.
La vulnerabilità è causata da un errore logico che porta alla chiamata della funzione nvmet_tcp_free_crypto due volte, liberando così alcuni puntatori e dereferenziando indirizzi già liberati. Comportamenti simili portano all'accesso a una area di memoria già liberata (use-after-free) e a doppie liberazioni di memoria (double-free) durante l'elaborazione da parte del server NVMe-oF/TCP di un messaggio appositamente formattato da un client, che può trovarsi sia nella rete locale che in quella globale.
Fonte: opennet.ru
