Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/binarymasc/cve-2026-46242
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitBinary Exploitation
GitHubbinarymasc/cve-2026-46242

CVE-2026-46242

Checker proof-of-concept per Aarch64 per la CVE-2026-46242 'Bad Epoll', che innesca la race condition use-after-free close-vs-close di epoll nel kernel Linux per validare l'escalation locale dei privilegi.

Vedi Repository
4 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-46242 — "Bad Epoll"

Questo repository è un validatore poordi epoll per kernel aarch64 basato su un exploit già esistente per x86.

Escalation dei privilegi locale del kernel Linux tramite race condition Use-After-Free in epoll

CampoDettaglio
CVECVE-2026-46242
SoprannomeBad Epoll
TipoUse-After-Free (UAF) tramite race condition
CVSS7.8 (Alto)
ImpattoEscalation dei privilegi locale → root
Kernel interessati5.10 – 6.11 (LTS e COS)
Sottosistemafs/eventpoll.c (percorso ep_remove() / close)

Riepilogo della vulnerabilità

Esiste una race condition nel sottosistema epoll del kernel Linux durante operazioni close() concorrenti sui descrittori di file monitorati e monitoranti. Quando due percorsi di close vengono eseguiti simultaneamente:

  1. Un percorso libera un oggetto eventpoll tramite ep_remove().
  2. La scrittura pendente hlist_del_rcu() dell'altro percorso finisce sulla memoria già liberata.

Questo produce un Use-After-Free che corrompe la lista refs dell'eventpoll riutilizzato, lasciando un puntatore dangling epi->ffd.file nel waiter epoll sopravvissuto — le fondamenta dell'intera catena di exploit.


Flusso di sfruttamento

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│ 1. KASLR Leak       (canale laterale prefetch via libxdk) │
├─────────────────────────────────────────────────────────┤
│ 2. Race Trigger      (UAF close-vs-close su eventpoll)  │
│    ├─ Timer adattivo: le fasi stat/exec calibrano in anticipo │
│    ├─ False-sharing:  dup()+close() allarga la finestra di race │
│    └─ Oracle:         EPOLL_CTL_ADD depth-3 → ELOOP?    │
├─────────────────────────────────────────────────────────┤
│ 3. Reclaim           (eventpoll liberato → ep_uaf_target)│
│    └─ epi->ffd.file dangling in ep_uaf_waiter           │
├─────────────────────────────────────────────────────────┤
│ 4. Cross-Cache       (slab filp → buddy → pipe_buffer)  │
│    ├─ Svuota la lista parziale per-CPU                  │
│    ├─ Libera gli oggetti circostanti → pagina slab liberata │
│    └─ Riutilizza come pagine pipe (256 × 4 KiB)        │
├─────────────────────────────────────────────────────────┤
│ 5. AAR Vincolato     (fdinfo ino:/sdev: come oracle di lettura) │
│    ├─ Le tile di fake file spray forgiano struct file nella pipe │
│    ├─ Lettura 8B: ino: ← i_ino all'offset controllato   │
│    ├─ Lettura 4B: sdev: ← cursore sigaltstack(sas_ss_sp) │
│    └─ Walk: init_task → trova il task dell'exploit → risolvi │
│       files → fdt → fd[] → pipe_buffer → struct page   │
├─────────────────────────────────────────────────────────┤
│ 6. Rip Control       (hijack f_op→poll → JOP → ROP)    │
│    ├─ Forgia f_op = virt, f_count = virt - 1            │
│    ├─ La catena pivot JOP porta rsp su una pagina controllata │
│    └─ ROP libxdk: commit_creds(init_cred) + switch ns   │
├─────────────────────────────────────────────────────────┤
│ 7. Ret2Usr           execve("/bin/bash") come root       │
└─────────────────────────────────────────────────────────┘

Build

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

Utilizzo

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

Codici di uscita

CodiceSignificato
0Race vinta — il kernel è vulnerabile
1Timeout — race non rilevata (possibile falso negativo, non prova che il kernel sia patchato)

Riferimenti

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

⚠️ Disclaimer: Questo repository è fornito solo per scopi educativi e di ricerca sulla sicurezza autorizzata. L'uso non autorizzato di questo exploit contro sistemi che non possiedi o per i quali non hai esplicito permesso di test è illegale.

Scarica lo strumento