La sicurezza di Linux si trova ad affrontare un'altra sfida in seguito alla scoperta del vulnerabilità CVE-2026-31431, soprannominata "Copia fallita" dai ricercatori di Xint Code. Lungi dall'essere un difetto teorico, questo problema di progettazione Consente a un utente locale privo di privilegi di elevare le proprie autorizzazioni e ottenere l'accesso completo. come superutente in modo prevedibile e silenzioso.
I ricercatori menzionano che questa vulnerabilità è stata sfruttata con successo nelle principali distribuzioni come Ubuntu, Amazon Linux, RHEL e SUSE, confermando che qualsiasi sistema che esegue un kernel successivo alla versione 4.14 e tenersi al passo L'abilitazione del supporto per i socket AF_ALG è potenzialmente vulnerabile a questo attacco.
Operazioni in loco e overflow della cache di pagina
Per quanto riguarda la sentenza, si menziona che questo Risale a un'ottimizzazione introdotta nel 2017 all'interno dell'API crittografica del kernel (AF_ALG). Questa modifica Volevo eliminare il buffering non necessario. esecuzione di operazioni di crittografia autenticata (AEAD) direttamente nello stesso spazio di memoria, note come operazioni "in loco".
El Si presenta un problema critico quando si combina questa ottimizzazione con la funzione splice(), Questo metodo trasferisce i dati tra descrittori di file trasferendo riferimenti diretti alla cache delle pagine del kernel anziché copiare fisicamente i dati. Quando si richiede la decrittazione, la struttura della memoria è stata configurata in modo tale che il buffer di destinazione, che dovrebbe essere uno spazio temporaneo per l'utente, risultasse collegato direttamente alle pagine della cache contenenti i dati dei file di sistema.
Autenticazione e scrittura al di fuori dei limiti della memoria
El La causa scatenante della vulnerabilità risiede nel comportamento anomalo dell'algoritmo di autenticazione. A differenza di altre routine crittografiche che rispettano rigorosamente i limiti dei loro buffer di destinazione, Questo specifico algoritmo utilizza lo spazio di memoria dell'utente come area di lavoro temporanea. (blocco note) per riorganizzare le sequenze di byte durante il calcolo del tag di autenticazione.
In questo processo, l'algoritmo scrive quattro byte oltre il limite stabilito per la regione di output. Grazie all'ottimizzazione in loco e alla catena di riferimenti creata da splice(),Questa scrittura apparentemente innocua oltrepassa il confine della memoria dell'utente e atterra direttamente sulla pagina della cache del kernel associata al file in fase di elaborazione.
Questa catena di errori logici Consente all'attaccante di sovrascrivere arbitrariamente quattro byte in specifiche posizioni della cache. di pagine per qualsiasi file che può leggere. Inviando una serie di richieste calcolate, un attaccante può iniettare codice dannoso nella versione in memoria di file eseguibili critici con il bit SUID impostato, come ad esempio lo strumento di cambio utente.
Poiché tutte le operazioni di lettura interrogano prima la cache della pagina, la prossima volta che viene richiamata l'utilità legittima, Il sistema eseguirà il codice iniettato dalla memoria, garantendo immediatamente i privilegi di root. senza mai alterare il file fisico sul disco rigido. Ancor più allarmante, poiché l'isolamento dei container condivide la cache di pagina dell'host sottostante, questa vulnerabilità funge da porta d'accesso diretta per uscire da ambienti virtualizzati come i cluster Kubernetes e compromettere il nodo primario.
Patch di emergenza e soluzioni di mitigazione
Data la gravità di questa sentenza, il I team di manutenzione hanno implementato aggiornamenti di emergenza, dove risiede la soluzione definitiva Ripristinare l'ottimizzazione in loco all'interno del file algif_aead.c, separando rigorosamente gli elenchi di memoria di origine e di destinazione. per impedire che le pagine memorizzate nella cache finiscano in percorsi scrivibili.
Queste patch sono già state integrate nei kernel 6.18.22, 6.19.12 e 7.0 e sono in fase di backporting nei rami di supporto a lungo termine. Per gli amministratori che non possono riavviare o aggiornare immediatamente i propri server, si consiglia di disabilitare il modulo del kernel algif_aead se è stato compilato esternamente, oppure di limitare severamente la creazione di socket AF_ALG utilizzando politiche di sicurezza come SELinux, uno strumento di protezione che, ad esempio, ha protetto i dispositivi Android attuali da questa minaccia.
Infine, se siete interessati a saperne di più, potete trovare i dettagli al seguente link.