Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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-46242 — Verificador de prova de conceito (PoC) para Aarch64 da CVE-2026-46242 'Bad Epoll', que aciona a condição de corrida use-after-free close-vs-close do epoll no kernel Linux para validar o escalonamento local de privilégios. | Kitploit
Ferramentas/GitHubGitHub/binarymasc/cve-2026-46242
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoExploração de Binários
GitHubbinarymasc/cve-2026-46242

CVE-2026-46242

Verificador de prova de conceito (PoC) para Aarch64 da CVE-2026-46242 'Bad Epoll', que aciona a condição de corrida use-after-free close-vs-close do epoll no kernel Linux para validar o escalonamento local de privilégios.

Ver Repositório
há 4 diasAinda não revisado

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

CVE-2026-46242 — "Bad Epoll"

Este repositório é um validador do "Bad Epoll" para kernels aarch64 baseado em exploit que já existe para x86.

Escalação Local de Privilégios no Kernel Linux via Condição de Corrida de Use-After-Free em epoll

CampoDetalhe
CVECVE-2026-46242
ApelidoBad Epoll
TipoUse-After-Free (UAF) via condição de corrida
CVSS7.8 (Alto)
ImpactoEscalação Local de Privilégios → root
Kernels afetados5.10 – 6.11 (LTS & COS)
Subsistemafs/eventpoll.c (ep_remove() / caminho de close)

Resumo da Vulnerabilidade

Existe uma condição de corrida no subsistema epoll do kernel Linux durante operações concorrentes de close() em descritores de arquivo monitorados e monitores. Quando dois caminhos de close executam simultaneamente:

  1. Um caminho libera um objeto eventpoll via ep_remove().
  2. A escrita pendente de hlist_del_rcu() do outro caminho atinge a memória já liberada.

Isso produz um Use-After-Free que corrompe a lista refs do eventpoll recuperado, deixando um ponteiro suspenso (dangling) epi->ffd.file no waiter epoll sobrevivente — a base para a cadeia completa de exploração.


Fluxo de Exploração

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│ 1. KASLR Leak       (prefetch side-channel via libxdk)  │
├─────────────────────────────────────────────────────────┤
│ 2. Race Trigger      (close-vs-close UAF on eventpoll)  │
│    ├─ Adaptive timer: stat/exec phases calibrate ahead  │
│    ├─ False-sharing:  dup()+close() widens race window  │
│    └─ Oracle:         EPOLL_CTL_ADD depth-3 → ELOOP?    │
├─────────────────────────────────────────────────────────┤
│ 3. Reclaim           (freed eventpoll → ep_uaf_target)  │
│    └─ Dangling epi->ffd.file in ep_uaf_waiter           │
├─────────────────────────────────────────────────────────┤
│ 4. Cross-Cache       (filp slab → buddy → pipe_buffer)  │
│    ├─ Drain per-CPU partial list                        │
│    ├─ Free enclosing objects → slab page freed          │
│    └─ Reclaim as pipe pages (256 × 4 KiB)              │
├─────────────────────────────────────────────────────────┤
│ 5. Constrained AAR   (fdinfo ino:/sdev: as read oracle) │
│    ├─ Fake file spray tiles forged struct file in pipe  │
│    ├─ 8B read: ino: ← i_ino at controlled offset       │
│    ├─ 4B read: sdev: ← sigaltstack(sas_ss_sp) cursor   │
│    └─ Walk: init_task → find exploit task → resolve     │
│       files → fdt → fd[] → pipe_buffer → struct page   │
├─────────────────────────────────────────────────────────┤
│ 6. RIP Control       (f_op→poll hijack → JOP → ROP)    │
│    ├─ Forge f_op = virt, f_count = virt - 1             │
│    ├─ JOP pivot chain lands rsp on controlled page      │
│    └─ libxdk ROP: commit_creds(init_cred) + ns switch  │
├─────────────────────────────────────────────────────────┤
│ 7. Ret2Usr           execve("/bin/bash") as root        │
└─────────────────────────────────────────────────────────┘

Compilação

root@kitploit:~
# aarch64 (cross-compile or native)
aarch64-linux-gnu-gcc -O2 -Wall -pthread -march=armv8-a \
    race_check_aarch64.c -o race_check

Uso

root@kitploit:~
./race_check [timeout_seconds]   # default: 300s (5 min)
./race_check 120                 # 2-minute timeout

Códigos de Saída

CódigoSignificado
0Corrida vencida — o kernel é vulnerável
1Tempo esgotado — corrida não detectada (possível falso negativo, não prova que o kernel está corrigido)

Referências

  • PoC Original (J-jaeyoung)
  • NVD — CVE-2026-46242

⚠️ Aviso Legal: Este repositório é fornecido apenas para fins educacionais e de pesquisa de segurança autorizada. O uso não autorizado deste exploit contra sistemas que você não possui ou sem permissão explícita para testar é ilegal.

Baixar ferramenta