Vulnerabilità in firejail che consente l'accesso root al sistema

È stata trovata una vulnerabilità (CVE-2022-31214) nell'utilità di esecuzione isolata delle applicazioni Firejail, che consente a un utente locale di ottenere i diritti di root nel sistema principale. Un exploit funzionante è disponibile pubblicamente, verificato in versioni recenti di openSUSE, Debian, Arch, Gentoo e Fedora con l'utilità firejail installata. Il problema è stato risolto nella versione firejail 0.9.70. Come soluzione alternativa, è possibile impostare nelle configurazioni (/etc/firejail/firejail.config) le opzioni «join no» e «force-nonewprivs yes».

Firejail utilizza meccanismi di isolamento come gli spazi dei nomi (namespaces), AppArmor e la filtrazione delle chiamate di sistema (seccomp-bpf) in Linux, ma per la configurazione dell'esecuzione isolata richiede privilegi elevati, che ottiene tramite l'associazione con l'utilità del flag suid root o l'esecuzione tramite sudo. La vulnerabilità è causata da un errore nella logica di funzionamento dell'opzione «—join=<PID>», destinata a collegarsi a un ambiente isolato già in esecuzione (simile al comando login per un ambiente sandbox) identificando l'ambiente tramite l'identificatore del processo in esecuzione. Prima di rinunciare ai privilegi, Firejail determina i privilegi del processo specificato e li applica al nuovo processo collegato all'ambiente tramite l'opzione «—join».

Prima di collegarsi, viene effettuato un controllo per verificare se il processo specificato è in esecuzione nell'ambiente Firejail. Questo controllo valuta la presenza del file /run/firejail/mnt/join. Per sfruttare la vulnerabilità, un attaccante può simulare un ambiente Firejail non isolato, utilizzando lo spazio dei punti di montaggio (mount namespace), e successivamente collegarsi ad esso tramite l'opzione «—join». Se nelle impostazioni non è attivata la modalità di divieto di acquisizione di privilegi aggiuntivi nei nuovi processi (prctl NO_NEW_PRIVS), Firejail collegherà l'utente all'ambiente simulato e tenterà di applicare le impostazioni dello spazio dei nomi degli identificatori utenti (user namespace) del processo init (PID 1).

Di conseguenza, il processo collegato tramite "firejail —join" si troverà nello spazio dei nomi degli identificatori utente originale per l'utente con privilegi invariati, ma in un diverso spazio di montaggio, completamente controllato dall'attaccante. Inoltre, l'attaccante può eseguire programmi setuid-root nel proprio spazio di montaggio, il che consente, ad esempio, di modificare le impostazioni /etc/sudoers o i parametri PAM nella propria gerarchia di file e ottenere la possibilità di eseguire comandi con i diritti di root tramite gli strumenti sudo o su.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster