Le vulnerabilità Dirty Frag modificano la cache di pagina per ottenere diritti di root in qualsiasi distribuzione Linux.

Nel kernel di Linux sono state identificati due vulnerabilità, sostanzialmente analoghe a quella di Copy Fail emersa alcuni giorni fa, ma manifestandosi in altri sottosistemi — xfrm-ESP e RxRPC. Le serie di vulnerabilità sono state soprannominate Dirty Frag (si incontra anche il riferimento a Copy Fail 2). Queste vulnerabilità consentono a un utente non privilegiato di ottenere diritti di root sovrascrivendo i dati del processo nella cache di pagina. È disponibile un exploit che funziona in tutte le distribuzioni Linux attuali. Le informazioni sulla vulnerabilità sono state divulgate prima della pubblicazione delle correzioni, ma esiste un metodo alternativo per bloccare il problema.

Dirty Frag copre due vulnerabilità distinte: la prima nel modulo xfrm-ESP, utilizzato per accelerare le operazioni di crittografia in IPsec con il protocollo ESP (Encapsulating Security Payload), e la seconda nel driver RxRPC, che implementa la famiglia di socket AF_RXRPC e il protocollo RPC omonimo, funzionante su UDP. Ognuna delle vulnerabilità consente, singolarmente, di ottenere diritti di root. La vulnerabilità in xfrm-ESP si manifesta nel kernel di Linux dal gennaio 2017, mentre quella in RxRPC è presente dal giugno 2023. Entrambi i problemi sono causati da ottimizzazioni che consentono la scrittura diretta nella cache di pagina.

Per sfruttare la vulnerabilità in xfrm-ESP, l'utente deve avere i diritti per creare spazi dei nomi, mentre per sfruttare la vulnerabilità in RxRPC deve essere possibile caricare il modulo del kernel rxrpc.ko. Ad esempio, in Ubuntu, le regole di AppArmor vietano a un utente non privilegiato di creare spazi dei nomi, ma il modulo rxrpc.ko viene caricato per impostazione predefinita. In alcune distribuzioni, il modulo rxrpc.ko è assente, ma non viene bloccata la creazione di spazi dei nomi. Il ricercatore che ha scoperto il problema ha preparato un exploit combinato, capace di attaccare il sistema attraverso entrambe le vulnerabilità, permettendo di sfruttare il problema in tutte le principali distribuzioni. L'efficacia dell'exploit è stata confermata in Ubuntu 24.04.4 con kernel 6.17.0-23, RHEL 10.1 con kernel 6.12.0-124.49.1, openSUSE Tumbleweed con kernel 7.0.2-1, CentOS Stream 10 con kernel 6.12.0-224, AlmaLinux 10 con kernel 6.12.0-124.52.3 e Fedora 44 con kernel 6.19.14-300.

Come per la vulnerabilità Copy Fail, i problemi in xfrm-ESP e RxRPC sono causati dall'esecuzione della decrittografia dei dati in loco utilizzando la funzione splice(), che trasmette dati tra i descrittori di file e i pipe senza copiare, passando riferimenti agli elementi nella cache delle pagine. Gli offset per l'operazione di scrittura sono stati calcolati senza adeguati controlli riguardanti l'uso di riferimenti diretti agli elementi nella cache delle pagine, consentendo così, tramite l'invio di richieste appositamente formate, di sovrascrivere 4 byte all'offset scelto e modificare il contenuto di qualsiasi file presente nella cache delle pagine.

Tutte le operazioni di lettura dei file prelevano innanzitutto il contenuto dalla cache delle pagine. In caso di modifica dei dati nella cache delle pagine, le operazioni di lettura dal file restituiranno informazioni che non sono realmente conservate sul dispositivo di archiviazione, ma dati alterati. Sfruttare questa vulnerabilità consiste nel modificare la cache delle pagine per un file eseguibile con il flag suid root. Ad esempio, per ottenere i diritti di root, è possibile leggere il file eseguibile /usr/bin/su per metterlo nella cache delle pagine, dopo di che si può fare in modo che il proprio codice venga inserito nel contenuto di quel file caricato nella cache. Successivamente, l'esecuzione dell'utilità "su" caricherà in memoria non il file eseguibile originale dal dispositivo di archiviazione, ma una copia modificata dalla cache delle pagine.

La divulgazione delle vulnerabilità e il rilascio coordinato degli aggiornamenti correttivi erano programmati per il 12 maggio, ma a causa di una fuga di informazioni i dettagli sulla vulnerabilità sono stati pubblicati prima dell'uscita delle patch. Alla fine di aprile, nella mailing list pubblica di netdev, sono stati pubblicati patch per rxrpc, ipsec e xfrm, senza menzionare che erano collegati alla risoluzione della vulnerabilità. Il 5 maggio, il maintainer del sottosistema IPsec ha accettato nel repository git di netdev una modifica con una patch proposta per il modulo xfrm-esp, la cui descrizione ripeteva in gran parte la descrizione del problema alla base della vulnerabilità Copy Fail nel modulo algif_aead. Uno dei ricercatori sulla sicurezza si è interessato a questa patch, è riuscito a creare un exploit funzionante e lo ha pubblicato, senza sapere che era stato imposto un embargo sulla divulgazione dei dettagli del problema fino al 12 maggio.

Le aggiornamenti con le correzioni per il kernel Linux e i pacchetti del kernel nelle distribuzioni non sono ancora stati pubblicati, ma sono disponibili patch risolutive: xfrm-esp e rxrpc. Non sono stati assegnati identificatori CVE, il che rende difficile monitorare l'aggiornamento dei pacchetti nelle distribuzioni. Come misura di protezione alternativa, è possibile bloccare il caricamento dei moduli del kernel esp4, esp6 e rxrpc: sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"

Fonte: opennet.ru

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