
PoC de escalada de privilégios local para o kernel Linux CVE-2022-1015
Este repositório contém um PoC para escalonamento local de privilégios do CVE-2022-1015, um bug no componente nf_tables do kernel linux que encontrei. Você pode ler uma análise detalhada desta vulnerabilidade e da estratégia de exploração no meu blog.
No momento, o exploit está um pouco bagunçado. Desculpe!
Kernels após o commit 345023b0db31 (v5.12) e antes do commit 6e1acfa387b9 (v5.17) estão vulneráveis.
Este exploit é extremamente improvável de obter um shell root para um kernel vulnerável específico. Você terá que experimentar com localizações de ganchos de cadeia (input vs output etc.), deslocamentos de vazamento de endereço do nft_bitwise, e gadgets de ROP e deslocamentos de símbolos. Eu testei em 5.16-rc3+ e tive que mudar seriamente meu exploit para uma compilação de kernel feita com uma versão diferente do gcc.
Dito isso, com todas as informações fornecidas no meu post do blog, acho que alterar o exploit para um kernel vulnerável específico deve ser viável.
Basta executar make, e um executável pwn deve aparecer no diretório de origem. Você precisará dos pacotes de desenvolvimento libmnl e libnftnl, bem como dos headers linux do alvo.
Você pode especificar explicitamente os headers do kernel a usar com, por exemplo, make CFLAGS="-I/path/to/linux-tree/usr/include".
Este código é distribuído sob a licença Beerware. Não sou legalmente responsável por qualquer coisa que você faça com ele.