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 identificata una vulnerabilità (CVE-2022-0435) che potrebbe consentire l'esecuzione di codice personalizzato a livello di kernel inviando pacchetti di rete appositamente formattati. Il problema interessa solo i sistemi con il modulo del kernel tipc.ko caricato e uno stack TIPC configurato, solitamente utilizzato nei cluster e disabilitato per impostazione predefinita nelle distribuzioni Linux non specializzate.

Si segnala che durante la compilazione del kernel in modalità «CONFIG_FORTIFY_SRC=y» (utilizzata in RHEL), che aggiunge ulteriori controlli sui limiti nella funzione memcpy(), l'exploitation è limitata a un arresto anomalo (il kernel entra in stato di panic). Se eseguito senza controlli aggiuntivi e in presenza di una fuga di informazioni sui canary utilizzati per proteggere lo stack, il problema può essere sfruttato per l'esecuzione remota di codice con i privilegi del kernel. I ricercatori che hanno identificato il problema dichiarano che la tecnica di exploitation è triviale e verrà divulgata dopo che la vulnerabilità sarà stata ampiamente corretta nelle distribuzioni.

La vulnerabilità è causata da un overflow dello stack che si verifica durante l'elaborazione dei pacchetti, in cui il valore del campo con il numero di nodi partecipanti di dominio, 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 eseguita la verifica del valore «member_cnt», consentendo di utilizzare valori superiori a 64 per sovrascrivere in modo controllato i dati nella zona di memoria successiva nella stack dopo la struttura «dom_bef».

L'errore che porta alla vulnerabilità è stato introdotto il 15 giugno 2016 ed è entrato a far parte del 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 non risolto: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

Il protocollo TIPC è stato originariamente sviluppato da Ericsson ed è progettato per facilitare la comunicazione interprocesso in un cluster, attivandosi principalmente sui nodi dei cluster. TIPC può operare sia su Ethernet che su UDP (porta di rete 6118). Se opera su Ethernet, è possibile effettuare un attacco dalla rete locale, mentre se utilizza UDP, l'attacco può avvenire dalla rete globale se la porta non è protetta da un firewall. L'attacco può essere eseguito anche da un utente locale non privilegiato del host. Per attivare TIPC è necessario caricare il modulo kernel tipc.ko e configurare il binding all'interfaccia di rete tramite netlink o l'utilità 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