Vulnerabilità in firejail che consente di ottenere accesso root al sistema

Nell'utilità per l'esecuzione isolata delle applicazioni Firejail è stata rilevata una vulnerabilità (CVE-2022-31214) che consente a un utente locale di ottenere i diritti di root nel sistema principale. È disponibile un exploit funzionante, verificato nelle 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 configurare nelle impostazioni (/etc/firejail/firejail.config) i parametri «join no» e «force-nonewprivs yes».

Firejail utilizza per l'isolamento un meccanismo di spazi dei nomi (namespaces), AppArmor e filtraggio delle chiamate di sistema (seccomp-bpf) in Linux, ma per configurare l'esecuzione isolata richiede privilegi elevati, che ottiene tramite il collegamento all'utilità del flag suid root o l'esecuzione tramite sudo. La vulnerabilità è causata da un errore nella logica della funzione «—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'ID di processo in esecuzione. Prima del ripristino dei privilegi, firejail determina i privilegi del processo specificato e li applica al nuovo processo collegato all'ambiente tramite l'opzione «—join».

Prima del collegamento, 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 aggressore può simulare un ambiente firejail non isolato, utilizzando lo spazio dei punti di montaggio (mount namespace), e successivamente collegarsi ad esso utilizzando 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 ID utente (user namespace) del processo init (PID 1).

Di conseguenza, il processo collegato tramite «firejail —join» si troverà nello spazio dei nomi degli ID utente originale per l'utente, con privilegi invariati, ma in un altro spazio di punti di montaggio, completamente sotto il controllo dell'aggressore. Inoltre, l'aggressore può eseguire programmi setuid-root nel proprio spazio di punti di montaggio, il che consente, ad esempio, di modificare le impostazioni di /etc/sudoers o i parametri PAM nella propria gerarchia di file e ottenere la possibilità di eseguire comandi con diritti di root utilizzando le utilità sudo o su.

Fonte: opennet.ru

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