Vulnerabilità in snapd e Rust Coreutils, che consentono di ottenere privilegi root su Ubuntu.

L'azienda Qualys ha scoperto una vulnerabilità (CVE-2026-3888) nell'interazione tra snap-confine e systemd-tmpfiles in Ubuntu, che consente a un utente non privilegiato di ottenere accesso root al sistema. Il problema si manifesta in Ubuntu nella configurazione predefinita a partire dalla versione 24.04. In Ubuntu 16.04-22.04, la vulnerabilità può essere sfruttata in configurazioni non standard che imitano il comportamento delle versioni più recenti della distribuzione. In Ubuntu, la correzione è disponibile nell'aggiornamento del pacchetto snapd rilasciato ieri. Nel pacchetto snapd, il problema è stato risolto nell'aggiornamento 2.75.

La vulnerabilità deriva da un'interazione scorretta tra gli strumenti snap-confine e systemd-tmpfiles, eseguiti con privilegi elevati. Lo strumento snap-confine crea un ambiente sandbox per l'esecuzione di un'applicazione snap, mentre systemd-tmpfiles esegue la pulizia automatica di file e directory temporanei. Di default, lo strumento systemd-tmpfiles è configurato per eliminare tutti i file e le directory obsolete in /tmp, il che può essere utilizzato da un attaccante per sostituire la directory /tmp/.snap nel momento successivo alla sua rimozione eseguita dallo strumento systemd-tmpfiles, ma prima della ricreazione da parte di snap-confine.

L'attacco consiste nell'attendere l'avvio del processo di pulizia dei file temporanei, sostituendo la directory /tmp/.snap dopo la sua eliminazione e posizionando una copia modificata delle librerie in /tmp/.snap/usr/lib/x86_64-linux-gnu.exchange. L'attaccante potrebbe aver bisogno di alcuni giorni in attesa dell'avvio di systemd-tmpfiles, poiché in Ubuntu 24.04 il processo di pulizia viene eseguito ogni 10 giorni, mentre nelle versioni più recenti ogni 30 giorni. Dopo la sostituzione della directory, l'attaccante riesce a inizializzare un nuovo ambiente sandbox tramite snap-confine.

Durante la creazione del contenuto dell'ambiente sandbox nella directory temporanea /tmp/.snap, l'attaccante attende il momento giusto e rinomina /tmp/.snap/usr/lib/x86_64-linux-gnu.exchange in /tmp/.snap/usr/lib/x86_64-linux-gnu, sostituendo così le librerie e assicurando il loro montaggio bind con diritti di root. In questo modo, l'attaccante ottiene il controllo sulle librerie condivise e sul caricatore ld.so, eseguiti nell'ambiente sandbox snap, e può ottenere l'esecuzione di codice arbitrario con diritti di root avviando qualsiasi programma suid in cui viene utilizzato il collegamento dinamico.

Ottenendo accesso root nell'ambiente sandbox, isolato tramite AppArmor e un filtro di chiamata di sistema basato su seccomp, l'attaccante può copiare /bin/bash nella directory /var/snap/$SNAP/common e impostargli i permessi '04755' (suid root). Sebbene i permessi vengano modificati all'interno dell'ambiente sandbox, il file con i permessi modificati è accessibile anche nel sistema principale, quindi per ottenere accesso root completo è sufficiente avviare /var/snap//common/bash come utente non privilegiato nell'ambiente di sistema normale.

In aggiunta, è stata scoperta una vulnerabilità nell'ecosistema uutils coreutils (Rust Coreutils), un'alternativa al pacchetto GNU Coreutils, scritta in Rust. La vulnerabilità consente a un utente non privilegiato di ottenere diritti di root nel sistema. Il problema è stato identificato durante la revisione delle modifiche in Ubuntu 25.10 e risolto in modo temporaneo prima del rilascio di Ubuntu 25.10, fornendo /usr/bin/gnurm al posto di uutils rm. Nel pacchetto uutils, il problema è stato risolto nella versione uutils coreutils 0.3.0, senza annotazioni nella changelog riguardanti la risoluzione della vulnerabilità (è stato indicato che in rm, du, chmod e chgrp è stato implementato un metodo sicuro per bypassare i percorsi).

Il problema è causato da una condizione di gara nello strumento 'rm', che consente a un utente locale di sostituire il contenuto di una directory con un collegamento simbolico durante l'eliminazione di un file controllato dall'utente da parte del processo 'rm' con diritti di root. Tra le altre cose, la vulnerabilità può essere sfruttata durante l'esecuzione giornaliera di uno script da cron /etc/cron.daily/apport, che viene eseguito con diritti di root e rimuove ricorsivamente il contenuto della directory /var/crash, accessibile in scrittura a tutti gli utenti del sistema.

Durante l'eliminazione ricorsiva delle directory, lo strumento rm inizialmente controlla tutte le directory e poi le rimuove in ordine inverso, invocando la funzione rmdir(). Se si riesce a sostituire la directory genitore con un collegamento simbolico subito dopo il controllo di quella directory, ma prima del controllo delle directory figlie contenute, l'operazione porterà all'eliminazione della directory a cui punta il collegamento simbolico. In questo modo è possibile non solo eliminare qualsiasi file nel sistema ma anche aumentare i privilegi eliminando la directory /tmp/snap-private-tmp/$SNAP/tmp/.snap per sostituire il contenuto dell'ambiente sandbox del pacchetto snap (il metodo per ottenere root è simile alla prima vulnerabilità).

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