Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-43284-DirtyFrag-PoC — Prova de conceito para CVE-2026-43284 — primitiva de escrita de 4 bytes no cache de páginas XFRM/ESP para corrigir um binário setuid (x86_64, namespaces de usuário). Inclui verificação prévia do kernel + varredura SUID. | Kitploit
Ferramentas/GitHubGitHub/jayhutajulu1/cve-2026-43284-dirtyfrag-poc
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoTestes de PenetraçãoAprendizado e EducaçãoExploração de Binários
GitHubjayhutajulu1/cve-2026-43284-dirtyfrag-poc

CVE-2026-43284-DirtyFrag-PoC

Prova de conceito para CVE-2026-43284 — primitiva de escrita de 4 bytes no cache de páginas XFRM/ESP para corrigir um binário setuid (x86_64, namespaces de usuário). Inclui verificação prévia do kernel + varredura SUID.

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório
111há 2 mesesAinda não revisado

CVE-2026-43284 — Corrupção de cache de página XFRM/ESP de 4 bytes

CVE Platform Type Status

Prova-de-conceito de escalonamento local de privilégios via corrupção de cache de página XFRM/ESP
Primitiva de escrita de 4 bytes · 48 iterações · Sobrescrita de 192 bytes ELF · usuário não privilegiado + netns


Prova de conceito

Verificações de pré-voo e fases do exploit no WSL2 Ubuntu 24.04 Shell root bem-sucedido com verificação uid=0

Esquerda: pré-verificação do kernel, scan de setuid e cadeia do exploit  ·  Direita: shell root gerado — id / whoami confirmam uid=0(root)
Testado no WSL2 · Ubuntu 24.04.1 LTS · kernel 6.6.87.2-microsoft-standard-WSL2


  ╔═══════════════════════════════════════╗
  ║  SLEY - CVE-2026-43284 dirtyfrag PoC  ║
  ╚═══════════════════════════════════════╝

Aviso: Apenas para pesquisa de segurança autorizada, educação e testes em sistemas que você possui ou tem permissão explícita para testar. Os autores não são responsáveis pelo uso indevido.


Visão geral

CVECVE-2026-43284
TipoEscalonamento local de privilégios (LPE)
VetorCorrupção de cache de página XFRM / ESP-UDP (UDP_ENCAP_ESPINUDP)
Primitiva4 bytes por iteração (ESN seq_hi)
PayloadELF x86_64 de 192 bytes (setuid(0) + setgid(0) + execve("/bin/sh"))
Alvo padrão/usr/bin/su
Arquiteturaapenas x86_64
Privilégios necessáriosUsuário não privilegiado (usa namespaces de usuário e rede)

Funciona mesmo quando algif_aead está na lista negra — o exploit usa o caminho do código do kernel XFRM/ESP diretamente.


Recursos

Verificações de pré-voo incorporadas antes da exploração:

  1. Configuração do kernel — verifica CONFIG_USER_NS, CONFIG_XFRM, CONFIG_INET_ESP
    (lê /boot/config-*, /lib/modules/*/config, ou /proc/config.gz no WSL2)
  2. Scan de setuid — lista binários SUID no sistema (find / -perm -4000)
  3. Exploit — corrige o cache de página, gera shell root via PTY, restaura o alvo ao sair

Requisitos

Opções do kernel

CONFIG_USER_NS=y
CONFIG_XFRM=y
CONFIG_INET_ESP=m   # ou =y

Verificação rápida:

# bare metal / VM
grep -E 'CONFIG_XFRM=|CONFIG_INET_ESP=|CONFIG_USER_NS=' /boot/config-$(uname -r)

# WSL2
zcat /proc/config.gz | grep -E 'CONFIG_XFRM=|CONFIG_INET_ESP=|CONFIG_USER_NS='

Outros

  • Kernel Linux vulnerável ao CVE-2026-43284 (veja Status do patch)
  • gcc, libc, libutil (para forkpty)
  • Binário setuid legível (padrão: /usr/bin/su)

Compilação

git clone https://github.com/jayhutajulu1/CVE-2026-43284.git
cd CVE-2026-43284
make

Ou manualmente:

gcc -O0 -Wall -o sley-dirtyfrag sley-dirtyfrag.c -lutil

-O0 é intencional — a otimização pode quebrar o comportamento sensível a tempo do splice/UDP.


Uso

1. Confirme que você não é privilegiado

id
# uid=1000(seuusuario) gid=1000(seuusuario) groups=...

2. Execute o exploit

./sley-dirtyfrag                  # alvo padrão: /usr/bin/su
./sley-dirtyfrag /usr/bin/passwd  # binário setuid personalizado

A ferramenta executa três fases automatizadas:

FaseO que faz
1Pré-verificação da configuração do kernel (CONFIG_USER_NS, CONFIG_XFRM, CONFIG_INET_ESP)
2Scan completo do sistema de binários setuid; destaca o alvo padrão
3Backup do alvo → corrige o cache de página (48 escritas de 4 bytes) → gera shell root

3. Verifique o acesso root

Dentro do shell gerado:

id
# uid=0(root) gid=0(root) groups=0(root)

whoami
# root

4. Saia para restaurar

Pressione Ctrl+D ou digite exit. O PoC limpa o cache de página para que o binário original em disco seja restaurado automaticamente.

Se a restauração falhar:

echo 3 | sudo tee /proc/sys/vm/drop_caches

Referência de comandos

ComandoDescrição
./sley-dirtyfragExplora /usr/bin/su (padrão)
./sley-dirtyfrag /caminho/para/suidExplora um binário setuid personalizado
makeCompila sley-dirtyfrag
make cleanRemove o binário

Exemplo de saída

┌─[ fase 1] pré-verificação da configuração do kernel
  → /proc/config.gz
  [+] CONFIG_USER_NS        = y  (obrigatório =y)
  [+] CONFIG_XFRM           = y  (obrigatório =y)
  [+] CONFIG_INET_ESP       = m  (obrigatório =m ou =y)
  opções do kernel OK.

┌─[ fase 2] scan de binários setuid
  10 /usr/bin/su  ← alvo
  encontrados 14 binários setuid.

┌─[ fase 3] exploit
  [*] unshare userns+netns, registrar 48 SA XFRM, splice→UDP 4500...
  [+] corrupt               todas iterações concluídas
  [+] verify                correção ELF detectada

  ╔══════════════════════════════════════╗
  ║  shell root — saia para restaurar     ║
  ╚══════════════════════════════════════╝

Mitigação

Aplique o patch do kernel (recomendado)

Corrigido emf4c50a4034e6 (mainline, 8 de maio de 2026)
Introduzido emcac2661c53f3 (Jan 2017)

Ação: Atualize para um kernel de distribuição que inclua a correção, ou compile a partir de uma árvore mainline corrigida.

# verifique seu kernel atual
uname -r

# verifique se a correção está presente (exemplo — ajuste para a nomenclatura de pacotes da sua distribuição)
# apt update && apt install --only-upgrade linux-image-$(uname -r)

Opções de hardening (defesa em profundidade)

MedidaEfeito
Aplicar patch/atualizar kernelElimina o bug subjacente de escrita no cache de página
Restringir namespaces de usuárioBloqueia este PoC (requer CONFIG_USER_NS)
Remover binários setuid desnecessáriosReduz alvos viáveis (chmod u-s, ou desinstalar)
Lockdown / LSM (SELinux, AppArmor)Pode limitar o impacto pós-exploração dependendo da política
Monitorar XFRM + UDP/4500Detectar registro anômalo de SA e tráfego ESP-em-UDP de namespaces não privilegiados

Restringir namespaces de usuário não privilegiados

Este exploit depende de unshare(CLONE_NEWUSER | CLONE_NEWNET) sem root.

# em tempo de execução (pode não existir em todos os kernels)
sysctl kernel.unprivileged_userns_clone=0

# ou desabilitar no momento da compilação
# CONFIG_USER_NS não definido

Nota: Desabilitar namespaces de usuário bloqueia este PoC, mas não necessariamente CVE-2026-43500 (variante rxrpc para sistemas sem userns).

Auditar binários setuid

find / -perm -4000 -type f 2>/dev/null
# remova ou endureça binários que você não precisa

Limpar caches após suspeita de comprometimento

Se você acredita que um binário setuid foi modificado na memória:

echo 3 | sudo tee /proc/sys/vm/drop_caches
# re-verifique a integridade do binário a partir do gerenciador de pacotes / hash conhecido

Como funciona

Baixar ferramenta