
Exploit de escalada de privilégios local para CVE-2021-4034 no pkexec, fornecendo uma prova de conceito que abre um shell root em sistemas vulneráveis.
Este repositório contém um exploit do CVE-2021-4034, uma escalonamento
local de privilégios no pkexec. Esta implementação é baseada naquela
descrita na divulgação do
CVE, que você deve ler.
Se isso funcionar na sua máquina, significa que você está vulnerável. Para resolver
isso, atualize o polkit para uma versão corrigida ou desabilite o bit setuid
no pkexec com o seguinte comando:
$ sudo chmod a-s $(which pkexec)
Este exploit é perigosamente fácil de escrever com base nas informações da divulgação, então corrija todas as suas máquinas o mais rápido possível.
Para executar este exploit, basta rodar make no diretório de nível
superior. Isso irá:
exploit.c, que executa o exploitgconv/badconv.c, que contém o payload./exploitSe isso abrir um shell como root, seu sistema está vulnerável.
Se você obtiver a seguinte saída, você mitigou com sucesso o bug
usando o comando chmod acima:
Running exploit...
GLib: Cannot convert message: Could not open converter from “UTF-8” to “ZT”
pkexec must be setuid root
Se você obtiver a mensagem de ajuda do pkexec como saída, seu sistema
provavelmente já foi corrigido.
Esta implementação deve funcionar em qualquer sistema vulnerável, incluindo Fedora 34+ e algumas versões do OpenSUSE que parecem não ser vulneráveis a algumas implementações. Especificamente, isso funcionará mesmo se o seu sistema tiver uma versão do polkit que desabilita o GVFS (adicionado aqui). Dito isso, não tenho experiência formal com segurança de computadores e ele pode relatar que seu sistema está corrigido, mesmo que ainda esteja vulnerável a este ou a outros exploits semelhantes. Portanto, você deve garantir que mantenha seus sistemas atualizados, ouça as pessoas que sabem do que estão falando e sempre coma seus vegetais.