Un bug di needrestart (vecchio di 10 anni) affligge Ubuntu server e consente agli utenti di scalare privilegi
Qualys ha pubblicato uno studio che mostra 5 problemi di privilege escalation relativi a needrestart, uno strumento che verifica se i servizi devono essere riavviati dopo aggiornamenti di librerie o pacchetti, utilizzato di default in Ubuntu (nota bene, nelle versioni server, non desktop) sin dalla versione 21.04 ed introdotti oltre 10 anni fa.
Il problema potrebbe consentire a utenti non privilegiati di sfruttare l’esecuzione non sicura di comandi o script, ottenendo privilegi elevati.
In particolare ci sono queste 5 CVE, ciascuna con una sua particolare modalità di sfruttamento:
- CVE-2024-48990 Needrestart esegue l’interprete Python con una variabile di ambiente
PYTHONPATH
estratta dai processi in esecuzione. Se un utente locale controlla questa variabile, può eseguire codice arbitrario come root durante l’inizializzazione di Python inserendo una libreria condivisa dannosa. - CVE-2024-48992: L’interprete Ruby utilizzato da Needrestart è vulnerabile quando elabora una variabile di ambiente
RUBYLIB
controllata dall’attaccante. Ciò consente a un attaccante locale di eseguire codice Ruby arbitrario come root iniettando librerie dannose. - CVE-2024-48991: Una race condition in Needrestart permette a un attaccante locale di sostituire il file binario dell’interprete Python con un eseguibile dannoso, ingannando Needrestart per eseguire il proprio codice come root.
- CVE-2024-10224: Il modulo Perl ScanDeps utilizzato da Needrestart gestisce in modo insicuro i nomi dei file forniti dall’attaccante. Ciò può portare all’esecuzione di comandi arbitrari come root quando i file vengono aperti.
- CVE-2024-11003: L’uso del modulo ScanDeps di Perl espone Needrestart a vulnerabilità che coinvolgono l’uso insicuro delle funzioni
eval()
. Questo può consentire l’esecuzione di codice arbitrario con input controllato dall’attaccante.
Come si può osservare la superficie d’attacco è limitata solo dalla fantasia. Come indicato chiaramente dal report gli aggressori avrebbero bisogno di avere accesso locale al sistema operativo tramite malware o un account compromesso per sfruttare queste falle, ma vien da sé come in ogni caso la problematica sia degna di nota.
Oltre all’aggiornamento alla versione 3.8 o successiva, che include patch per tutte le vulnerabilità identificate, il consiglio che viene dato per evitare la problematica è quello di modificare il file /etc/needrestart/needrestart.conf
in questo modo:
# Disable interpreter scanners.
$nrconf{interpscan} = 0;
la modifica, lascia intendere il commento, disabilita lo scanner dell’interprete del codice che, come avrete capito, è la causa del problema in quanto consente di annidare il codice malevolo che viene eseguito con i privilegi di root propri di needrestart.
Raoul Scarazzini
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.