Il ricercatore di sicurezza Skyler Ferrante ha scoperto una vulnerabilità all'interno del comando wall, componente del pacchetto util-linux, che è un elemento cardine del sistema operativo. Denominata WallEscape, questa falla di sicurezza ha sollevato preoccupazioni significative, dati i potenziali rischi ad essa associati. Il problema, identificato con il codice CVE-2024-28085, consente a un attaccante privo di privilegi specifici di rubare password o modifica gli appunti (i dati presenti clipboard) della vittima, sfruttando una vulnerabilità presente in tutte le versioni del pacchetto degli ultimi 11 anni, fino alla recente release 2.40.
Per fortuna, il campo di applicazione dell'exploit è considerato limitato a scenari specifici. In particolare, l'attacco richiede l'accesso a un server Linux utilizzato contemporaneamente da più utenti attraverso un terminale, situazione che si può ritrovare, ad esempio, in contesti accademici dove gli studenti si connettono per completare delle assegnazioni.
Ferrante ha descritto WallEscape come una problematica legata alla "neutralizzazione impropria di sequenze di escape nel comando wall". L'exploit sfrutta il fatto che le sequenze di escape non vengono filtrate adeguatamente durante l'elaborazione degli input attraverso argomenti da linea di comando. Di conseguenza, un utente senza privilegi poteva utilizzare caratteri di controllo di escape per generare un falso prompt di SUDO sui terminali degli altri utenti, indirizzandoli così a inserire la password dell'amministratore.
Perché l'exploit abbia successo sono però necessarie determinate condizioni: la utility work deve essere attiva e il comando wall deve avere i permessi setguide. Questi requisiti sono soddisfatti su distribuzioni come Ubuntu 22.04 LTS (Jammy Jellyfish) e Debian 12.5 (Bookworm), ma non su CentOS, evidenziando una variabilità nella vulnerabilità a seconda della piattaforma utilizzata.
Per dimostrare la pericolosità di WallEscape, Ferrante ha reso pubblico un codice di prova, affiancato da dettagli tecnici e scenari di exploit. Un esempio di attacco descritto rappresentava la creazione di un falso prompt di SUDO per il terminale Gnome, con l'intento di ingannare l'utente a inserire la propria password di amministratore. L'attacco richiedeva particolare attenzione nella preparazione, utilizzando il comando wall per inviare allo script bersaglio modifiche all'input del terminale, come il colore di primo piano e l'occultamento dei tasti, così che la falsa richiesta di password apparisse legittima.
Una volta ottenuta la password, l'attaccante poteva verificarla accedendo al file /proc/$pid/cmdline, visibile anche agli utenti non privilegiati su molte distribuzioni Linux. Un'altra modalità di attacco prevedeva la modifica degli appunti dell'utente bersaglio attraverso sequenze di escape. Tuttavia, questo metodo non risultava efficace con tutti gli emulatori di terminale, inclusi quelli di Gnome.
Ferrante, nel suo report, oltre a fornire il codice dimostrativo per orchestrare l'attacco, ha spiegato nel dettaglio il funzionamento degli scenari di exploit, sottolineando che l'esecuzione di WallEscape richiede un accesso locale al sistema (fisico o remoto tramite SSH), il che ne limita la gravità. Nonostante ciò, il rischio è significativo per gli utenti privi di privilegi che condividevano il sistema con la vittima, ad esempio in contesti istituzionali o aziendali.
Di fronte a tale minaccia, è stato consigliato agli utenti di effettuare un aggiornamento immediato alla versione 2.40 di linux-utils, al fine di correggere la vulnerabilità. Sebbene l'update debba essere normalmente disponibile attraverso i canali standard di aggiornamento delle distribuzioni Linux, potrebbero esservi dei ritardi. Nel frattempo, gli amministratori di sistema possono mitigare il rischio di CVE-2024-28085 rimuovendo i permessi setguide dal comando wall o disattivando la funzionalità di broadcast dei messaggi utilizzando il comando mesg per impostare il suo flag su "n".