È stato reso pubblico un exploit per la settima vulnerabilità (1, 2-3, 4, 5, 6) nel kernel Linux, che consente a un utente locale non privilegiato di ottenere i diritti di root sovrascrivendo i dati nella cache delle pagine. L'identificatore CVE non è ancora stato assegnato, e oltre al codice dell'exploit al momento non ci sono ulteriori informazioni sul problema. La correzione è disponibile solo sotto forma di patch, pubblicata il 20 maggio e accettata nel ramo principale del kernel Linux il 21 maggio (le versioni correttive del kernel non sono ancora disponibili).
La vulnerabilità è presente nell'implementazione della tecnologia GRO (Generic Receive Offload), utilizzata per accelerare l'elaborazione di pacchetti frammentati. La vulnerabilità è causata da un errore nell'implementazione del meccanismo zerocopy nella funzione skb_gro_receive(), che modifica direttamente i dati nella cache delle pagine per escludere una bufferizzazione superflua. Con il flag SKBFL_MANAGED_FRAG_REFS attivo, il salvataggio del riferimento alle pagine di memoria liberate nel campo shinfo->frags veniva saltato, dopo di che questo campo veniva associato a un altro skb senza modificare il contatore dei riferimenti, portando a un accesso alla memoria dopo la sua liberazione (use-after-free). Il problema è stato sfruttato per sovrascrivere i dati nella cache delle pagine, grazie alla manipolazione del puntatore al buffer io_uring.
L'attacco è possibile su sistemi con il sottosistema io_uring attivato (io_uring_disabled=0). Affinché l'exploit funzioni, un file eseguibile con flag SUID-root deve essere accessibile in lettura nel sistema. Il meccanismo di sfruttamento consiste nel fatto che l'attaccante fa in modo che un database di utenti si stabilizzi nella cache delle pagine, dopodiché inserisce nella cache la stringa «hax::0:0::/root:/bin/sh». Successivamente viene eseguita il comando «su hax», che non riceve l'originale database di utenti dall'archivio, ma una copia modificata con il login sostituito «hax», a cui sono stati concessi diritti di root e una password vuota. Il funzionamento dell'exploit è stato testato su Ubuntu 24.04.
Fonte: opennet.ru
