
PoC educacional do CVE-2021-4034, o PwnKit, LPE via pkexec do polkit. Uso autorizado apenas.
Prova de conceito para o PwnKit, uma escalada de privilégio local no pkexec do polkit. Em uma instalação padrão, qualquer usuário local sem privilégios pode se tornar root.
Versões vulneráveis do pkexec lidam incorretamente com a contagem de argumentos do processo. Isso permite que variáveis de ambiente controladas sejam reintroduzidas no ambiente do pkexec, o que acaba executando um objeto compartilhado controlado pelo atacante como root. Foi divulgado em 25 de janeiro de 2022 pela Equipe de Pesquisa da Qualys e pontua 7,8 (alto) no CVSS v3.1. A entrada no NVD é CVE-2021-4034.
Praticamente todas as versões do polkit desde 2009 foram afetadas até a correção coordenada. As distribuições disponibilizaram pacotes corrigidos na data da divulgação ou após, portanto mantenha as atualizações do seu fornecedor atualizadas.
Esta é uma referência educacional para uma vulnerabilidade bem documentada e divulgada publicamente. Eu o uso para estudar a falha no tratamento de argumentos do pkexec, para validar o status do patch em laboratórios e avaliações autorizadas, e para manter notas de detecção e remediação.
Execute isto apenas em sistemas que você possui ou está autorizado a testar.
gcc cve-2021-4034-poc.c -o cve-2021-4034-poc
./cve-2021-4034-poc
Em um host vulnerável, ele te leva a um shell root. Verificado no Debian 10 buster e CentOS 7.
Atualize o polkit e o pkexec para a versão corrigida da sua distribuição. Se não puder atualizar imediatamente, remova o bit SUID com chmod 0755 no binário do pkexec, aceitando que você perde a delegação de privilégios do pkexec. Para detecção, alerte sobre execuções do pkexec com um argv vazio ou com um ambiente incomum como GCONV_PATH, CHARSET ou SHELL imediatamente antes de um shell root aparecer.
A vulnerabilidade foi encontrada e divulgada de forma responsável pela Equipe de Pesquisa da Qualys.
Este código é publicado apenas para estudo e testes de segurança autorizados. Executá-lo em sistemas que você não possui ou não tem permissão por escrito para testar é ilegal e pode acarretar responsabilidade criminal e civil. Use-o em seus próprios laboratórios ou sob um escopo de engajamento assinado. Você é responsável pelo que fizer com ele.