Chroot in retromarcia: sudo fa dietrofront sulle (in)sicure novità a causa di una grave vulnerabilità

Nei giorni scorsi è stata segnalata una vulnerabilità nel binario sudo, identificata con il codice CVE-2025-3246, che consente una privilege escalation sfruttando la funzionalità chroot.

L’exploit è stato divulgato dall’azienda di sicurezza Stratascale e riguarda le versioni di sudo comprese tra la 1.9.14 e la 1.9.17.

La vulnerabilità consente a un utente non privilegiato di forzare l’utilizzo della funzione chroot() su percorsi scrivibili e potenzialmente pericolosi sotto il proprio controllo. Ciò rappresenta un rischio critico, in quanto sudo esegue tale operazione con privilegi di root.

Per capire se il proprio sistema è impattato è necessario fare riferimento a quanto riportato anche nel sito ufficiale di sudo-project, ossia che su tutti i sistemi che supportano il file /etc/nsswitch.conf un utente potrebbe riuscire a eseguire comandi arbitrari con i privilegi di root.

L’exploit fornito da Stratascale è stato testato su Ubuntu 24.04.1 e Fedora 41 Server ed in entrambi i casi ha avuto successo, quindi la fetta di utenza potenzialmente colpita è abbastanza grande. Unendo queste informazioni al fatto che la CVE riporta un CVSS v3 Base Score di 7.8 si può capire la gravità della situazione, ed è quindi molto importante aggiornare almeno alla versione 1.9.17p1, il prima possibile, per evitare scenari di local privilege escalation.

Il funzionamento dell’exploit utilizza l’opzione sudo chiamata -R (o --chroot) che permette di eseguire comandi all’interno di una directory root diversa da quella di sistema, scelta dall’utente, a patto che il file sudoers lo consenta.

A partire dalla versione 1.9.14, era stata introdotta una modifica che faceva sì che sudo utilizzasse subito la nuova root specificata dall’utente (tramite chroot()) anche durante la lettura del file sudoers. Tuttavia, questa scelta ha introdotto un problema di sicurezza: un attaccante poteva creare un file nsswitch.conf in quella directory e indurre sudo a caricare librerie condivise potenzialmente pericolose.

La base dell’attacco è quindi sfruttare un errore logico nella gestione della libreria NSS in ambienti dove è usato chroot, caricando tramite sudo librerie esterne senza che siano correttamente isolate.

Ecco un video di una PoC che dimostra la facilità con cui è possibile eseguire l’exploit.

Nella versione 1.9.17p1, gli sviluppatori hanno deciso di fare un vero e proprio passo indietro: hanno annullato la modifica introdotta in precedenza e hanno anche segnato la funzionalità chroot come deprecata, dato che era anche poco utilizzata.

È stata colta l’occasione anche per rilasciare la patch per un’altra CVE che colpiva il medesimo binario: CVE-2025-32462.

Nella pratica, erano state introdotte più vulnerabilità che funzionalità!

Security Engineer
Appassionato di sicurezza informatica offensive, Linux e Open Source.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *