Vulnerabilità remota nel kernel Linux, che si manifesta durante l'uso del protocollo TIPC

Nel modulo del kernel Linux che gestisce il protocollo di rete TIPC (Transparent Inter-process Communication), è stata scoperta una vulnerabilità (CVE-2022-0435) che potrebbe consentire l'esecuzione di codice a livello di kernel tramite l'invio di un pacchetto di rete appositamente formattato. Il problema interessa solo i sistemi con il modulo kernel tipc.ko caricato e con lo stack TIPC configurato, comunemente utilizzato nei cluster e disattivato di default nelle distribuzioni Linux non specializzate.

Si segnala che durante la compilazione del kernel in modalità «CONFIG_FORTIFY_SRC=y» (utilizzata in RHEL), che aggiunge controlli aggiuntivi sui limiti nella funzione memcpy(), l'exploit si limita a un arresto d'emergenza (il kernel entra in stato di panic). Se eseguito senza controlli aggiuntivi e in presenza di una perdita di informazioni su valori di canarini utilizzati per proteggere lo stack, il problema può essere utilizzato per l'esecuzione remota di codice con privilegi di kernel. I ricercatori che hanno identificato il problema dichiarano che la tecnica di sfruttamento è banale e sarà rivelata dopo la rimozione diffusa della vulnerabilità nelle distribuzioni.

La vulnerabilità è causata da uno overflow dello stack, che si verifica durante l'elaborazione di pacchetti, il valore del campo con il numero di nodi partecipanti di dominio, che supera 64. Per memorizzare i parametri dei nodi nel modulo tipc.ko viene utilizzato un array fisso «u32 members[64]», ma durante l'elaborazione del numero di nodo specificato nel pacchetto non viene eseguito il controllo del valore «member_cnt», il che consente di utilizzare valori superiori a 64 per sovrascrivere in modo controllato i dati nell'area di memoria successiva nello stack dopo la struttura «dom_bef».

Il difetto che porta a vulnerabilità è stato introdotto il 15 giugno 2016 ed è stato incluso nel kernel Linux 4.8. La vulnerabilità è stata corretta nelle versioni del kernel Linux 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 e 4.9.301. Nei kernel della maggior parte delle distribuzioni, il problema rimane ancora irrisolto: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

Il protocollo TIPC è stato originariamente sviluppato da Ericsson, ed è progettato per facilitare la comunicazione tra processi in un cluster, attivandosi principalmente sui nodi del cluster. TIPC può operare sia su Ethernet che su UDP (porta di rete 6118). In caso di funzionamento su Ethernet, un attacco può essere compiuto dalla rete locale, mentre utilizzando UDP — dalla rete globale, se la porta non è protetta da un firewall. Un attacco può essere anche effettuato da un utente locale non privilegiato del host. Per attivare TIPC è necessario caricare il modulo del kernel tipc.ko e configurare il binding all'interfaccia di rete tramite netlink o l'utility tipc.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster