Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-46242 — Aarch64-Proof-of-Concept-Checker für CVE-2026-46242 'Bad Epoll', der den Use-after-Free-Race close-vs-close im Linux-Kernel-epoll auslöst, um lokale Privilegieneskalation zu validieren. | Kitploit
Tools/GitHubGitHub/binarymasc/cve-2026-46242
Privilege EscalationSchwachstellenanalyseExploitationBinary-Exploitation
GitHubbinarymasc/cve-2026-46242

CVE-2026-46242

Aarch64-Proof-of-Concept-Checker für CVE-2026-46242 'Bad Epoll', der den Use-after-Free-Race close-vs-close im Linux-Kernel-epoll auslöst, um lokale Privilegieneskalation zu validieren.

Repository anzeigen
vor 4 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-46242 — „Bad Epoll"

Dieses Repository ist ein Bad-Epoll-Validator für aarch64-Kernel, basierend auf einem Exploit, der für x86 bereits existiert.

Linux Kernel Local Privilege Escalation durch epoll Use-After-Free Race Condition

FeldDetail
CVECVE-2026-46242
SpitznameBad Epoll
TypUse-After-Free (UAF) durch Race Condition
CVSS7.8 (Hoch)
AuswirkungLokale Privilege Escalation → root
Betroffene Kernel5.10 – 6.11 (LTS & COS)
Subsystemfs/eventpoll.c (ep_remove() / close-Pfad)

Zusammenfassung der Schwachstelle

Im epoll-Subsystem des Linux-Kernels besteht eine Race Condition während gleichzeitiger close()-Operationen auf überwachte und überwachende Dateideskriptoren. Wenn zwei close-Pfade gleichzeitig ausgeführt werden:

  1. Ein Pfad gibt ein eventpoll-Objekt über ep_remove() frei.
  2. Der ausstehende hlist_del_rcu()-Schreibvorgang des anderen Pfads landet auf dem bereits freigegebenen Speicher.

Dies erzeugt einen Use-After-Free, der die refs-Liste des zurückgewonnenen eventpoll beschädigt und einen hängen gebliebenen epi->ffd.file-Zeiger im überlebenden epoll-Waiter hinterlässt — die Grundlage für die vollständige Exploit-Kette.


Exploit-Ablauf

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│ 1. KASLR-Leak      (prefetch-Seitenkanal via libxdk)    │
├─────────────────────────────────────────────────────────┤
│ 2. Race-Trigger    (close-vs-close UAF auf eventpoll)   │
│    ├─ Adaptiver Timer: stat/exec-Phasen kalibrieren vor │
│    ├─ False-Sharing: dup()+close() verbreitert Fenster  │
│    └─ Orakel:       EPOLL_CTL_ADD Tiefe-3 → ELOOP?      │
├─────────────────────────────────────────────────────────┤
│ 3. Rückgewinnung   (freigegebenes eventpoll → ep_uaf_target) │
│    └─ Hängender epi->ffd.file in ep_uaf_waiter          │
├─────────────────────────────────────────────────────────┤
│ 4. Cross-Cache     (filp-Slab → buddy → pipe_buffer)    │
│    ├─ Per-CPU-partielle Liste leeren                     │
│    ├─ Umgebende Objekte freigeben → Slab-Seite frei     │
│    └─ Als Pipe-Seiten zurückgewinnen (256 × 4 KiB)      │
├─────────────────────────────────────────────────────────┤
│ 5. Eingeschränktes AAR (fdinfo ino:/sdev: als Lese-Orakel) │
│    ├─ Fake-File-Spray kachelt gefälschte struct file in Pipe │
│    ├─ 8B-Lesen: ino: ← i_ino an kontrolliertem Offset   │
│    ├─ 4B-Lesen: sdev: ← sigaltstack(sas_ss_sp)-Cursor   │
│    └─ Lauf: init_task → finde Exploit-Task → löse auf   │
│       files → fdt → fd[] → pipe_buffer → struct page    │
├─────────────────────────────────────────────────────────┤
│ 6. RIP-Kontrolle   (f_op→poll-Hijack → JOP → ROP)       │
│    ├─ Fälsche f_op = virt, f_count = virt - 1           │
│    ├─ JOP-Pivot-Kette landet rsp auf kontrollierter Seite│
│    └─ libxdk-ROP: commit_creds(init_cred) + ns-Wechsel  │
├─────────────────────────────────────────────────────────┤
│ 7. Ret2Usr         execve("/bin/bash") als root         │
└─────────────────────────────────────────────────────────┘

Build

root@kitploit:~
# aarch64 (Cross-Compile oder nativ)
aarch64-linux-gnu-gcc -O2 -Wall -pthread -march=armv8-a \
    race_check_aarch64.c -o race_check

Verwendung

root@kitploit:~
./race_check [timeout_seconds]   # Standard: 300s (5 Min.)
./race_check 120                 # 2-Minuten-Timeout

Exit-Codes

CodeBedeutung
0Race gewonnen — Kernel ist verwundbar
1Timeout — Race nicht erkannt (mögliches False Negative, beweist nicht, dass der Kernel gepatcht ist)

Referenzen

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

⚠️ Haftungsausschluss: Dieses Repository wird ausschließlich für Bildungszwecke und autorisierte Sicherheitsforschung bereitgestellt. Die unbefugte Nutzung dieses Exploits gegen Systeme, die du nicht besitzt oder für die du keine ausdrückliche Erlaubnis zum Testen hast, ist illegal.

Tool herunterladen