Vulnerabilità nel sottosistema netfilter che consente l'esecuzione di codice a livello del kernel Linux

Netfilter, un sottosistema del kernel Linux utilizzato per filtrare e modificare i pacchetti di rete, presenta una vulnerabilità (CVE-2022-25636) che consente l'esecuzione di codice a livello di kernel. È stato annunciato che è stato preparato un esempio di exploit che consente a un utente locale di elevare i propri privilegi in Ubuntu 21.10 con il meccanismo di protezione KASLR disabilitato. Il problema si presenta a partire dal kernel 5.4. La correzione è ancora disponibile come patch (non sono state generate versioni correttive del kernel). Puoi seguire le pubblicazioni degli aggiornamenti dei pacchetti nelle distribuzioni in queste pagine: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.

La vulnerabilità è causata da un errore nel calcolo della dimensione dell'array flow->rule->action.entries nella funzione nft_fwd_dup_netdev_offload (definita nel file net/netfilter/nf_dup_netdev.c), che può portare alla sottrazione di dati controllati dall'aggressore scritto in un'area di memoria oltre il limite del buffer allocato. L'errore appare quando si configurano le regole “dup” e “fwd” in catene per le quali viene utilizzata l'accelerazione hardware dell'elaborazione dei pacchetti (offload). Poiché l'overflow si verifica prima della creazione di una regola di filtro dei pacchetti e della verifica del supporto per l'offload, la vulnerabilità si applica anche ai dispositivi di rete che non supportano l'accelerazione hardware, come un'interfaccia di loopback.

Si noti che il problema è abbastanza semplice da sfruttare, poiché i valori che vanno oltre il buffer possono sovrascrivere il puntatore alla struttura net_device e i dati sul valore sovrascritto vengono restituiti allo spazio utente, che consente di scoprire gli indirizzi nella memoria necessaria per effettuare l'attacco. Lo sfruttamento della vulnerabilità richiede la creazione di determinate regole in nftables, cosa possibile solo con i privilegi CAP_NET_ADMIN, che possono essere ottenuti da un utente non privilegiato in spazi dei nomi di rete separati. La vulnerabilità può essere utilizzata anche per attaccare i sistemi di isolamento dei container.

Fonte: opennet.ru

Aggiungi un commento