I ricercatori di sicurezza di Google hanno identificato una vulnerabilità nel kernel di Linux (CVE-2025-38236) che consente di elevare i propri privilegi di sistema. Tra l'altro, la vulnerabilità permette di eludere il meccanismo di isolamento sandbox utilizzato in Google Chrome e di eseguire codice a livello di kernel durante l'esecuzione di codice nel contesto di un processo isolato di rendering di Chrome (ad esempio, sfruttando un'altra vulnerabilità in Chrome). Il problema si manifesta a partire dal kernel Linux 6.9 ed è stato risolto negli aggiornamenti del kernel Linux 6.1.143, 6.6.96, 6.12.36 e 6.15.5. È disponibile un prototipo dell'exploit per il download.
La vulnerabilità è causata da un errore nell'implementazione del flag MSG_OOB, che può essere impostato per i socket AF_UNIX. Il flag MSG_OOB («out-of-band») consente di allegare un byte aggiuntivo ai dati inviati, che il destinatario può leggere prima di ricevere il resto dei dati. Questo flag è stato introdotto nel kernel di Linux 5.15 su richiesta di Oracle e l'anno scorso è stato proposto per la deprecazione, in quanto non ampiamente utilizzato.
Nell'implementazione dell'ambiente sandbox di Chrome sono consentite operazioni con socket UNIX e chiamate di sistema send()/recv(), in cui il flag MSG_OOB era permesso insieme ad altre opzioni e non era stato filtrato separatamente. L'errore nell'implementazione di MSG_OOB consentiva di accedere alla memoria dopo che era stata liberata (use-after-free) dopo aver eseguito una certa sequenza di chiamate di sistema: char dummy; int socks[2]; socketpair(AF_UNIX, SOCK_STREAM, 0, socks); send(socks[1], «A», 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], «A», 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], «A», 1, MSG_OOB); recv(socks[0], &dummy, 1, 0); recv(socks[0], &dummy, 1, MSG_OOB);
Fonte: opennet.ru
