
Exploit di escalation dei privilegi locali per CVE-2021-4034 in pkexec, che fornisce una proof-of-concept in grado di ottenere una shell di root sui sistemi vulnerabili.
Questo repository contiene un exploit per CVE-2021-4034, un'escalation
locale dei privilegi in pkexec. Questa implementazione si basa su
quella descritta nella divulgazione della
CVE, che dovreste leggere.
Se funziona sulla vostra macchina, significa che siete vulnerabili. Per
risolvere il problema, aggiornate polkit a una versione patchata oppure disabilitate il bit setuid
su pkexec con il seguente comando:
$ sudo chmod a-s $(which pkexec)
Questo exploit è pericolosamente facile da scrivere in base alle informazioni contenute nella divulgazione, quindi patchate tutte le vostre macchine il prima possibile.
Per eseguire questo exploit, basta lanciare make nella directory
principale. Questo:
exploit.c, che esegue l'exploitgconv/badconv.c, che contiene il payload./exploitSe questo vi porta a una shell come root, il vostro sistema è vulnerabile.
Se ottenete il seguente output, avete mitigato con successo il bug
usando il comando chmod sopra indicato:
Running exploit...
GLib: Cannot convert message: Could not open converter from “UTF-8” to “ZT”
pkexec must be setuid root
Se ottenete il messaggio di aiuto di pkexec come output, il vostro sistema è
probabilmente già stato patchato.
Questa implementazione dovrebbe funzionare su qualsiasi sistema vulnerabile, inclusi Fedora 34+ e alcune versioni di OpenSUSE che sembrano non essere vulnerabili ad alcune implementazioni. Nello specifico, funzionerà anche se il vostro sistema ha una versione di polkit che disabilita GVFS (aggiunto qui). Detto questo, non ho esperienza formale in sicurezza informatica e potrebbe segnalare che il vostro sistema è patchato, anche se è ancora vulnerabile a questo o ad altri exploit simili. Pertanto, dovreste assicurarvi di mantenere i vostri sistemi aggiornati, ascoltare le persone che sanno di cosa parlano e mangiare sempre le verdure.