Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cve-2026-98432 — Rust-Detektor und lokales Labor für CVE-2026-98432, einen Linux-IPv4-TCP-Use-after-free in inet_opt/ireq_opt: statische ELF-Analyse, kprobe-Erreichbarkeitsprüfungen und ein Race-Trigger. | Kitploit
Tools/GitHubGitHub/alvaroguzmancode/cve-2026-98432
Statische AnalyseSchwachstellenanalyseExploitationFuzzingPapers & ForschungLabs & Praxis
GitHubalvaroguzmancode/cve-2026-98432

cve-2026-98432

Rust-Detektor und lokales Labor für CVE-2026-98432, einen Linux-IPv4-TCP-Use-after-free in inet_opt/ireq_opt: statische ELF-Analyse, kprobe-Erreichbarkeitsprüfungen und ein Race-Trigger.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Repository anzeigen
2vor 6 TagenNoch nicht geprüft
Teilen

CVE-2026-98432 — IPv4-TCP-Use-after-free (inet_opt / ireq_opt)

Forschungs-PoC und lokales Labor für einen Use-after-free im Linux-Kernel, der von einem einfachen IPv4-TCP-Listener aus erreichbar ist. Dies ist ein Fehlerdetektor/-auslöser, kein Exploit.

Status

  • Der Codepfad ist in dem analysierten Build (7.0.0-38-generic) verwundbar: inet_sock_destruct() und tcp_v4_reqsk_destructor() geben die Optionen mit kfree() statt mit kfree_rcu() frei.
  • Der kfree-Pfad ist zur Laufzeit erreichbar (kprobes).
  • Der UAF selbst ist ein schweres, stoßweises Race. Wir haben in einem alten Lauf zwei Kandidaten für free -> use-Ereignisse (via=reqsk) gesehen und konnten sie nicht zuverlässig reproduzieren.
  • Es sind kein RCE, kein KASLR-Leak und kein Write-Primitive implementiert. Das Referenz-Repo tcp2kaslr endet ebenfalls beim Fehlerauslöser; spätere Stufen sind nicht veröffentlicht.
  • Eine starke Bestätigung erfordert einen KASAN- (oder KFENCE-)Kernel. Auf dem Testhost ist CONFIG_KASAN deaktiviert und die KFENCE-Sampling ist ausgeschaltet.

Der korrekte Vektor (aus tcp2kaslr)

MPTCP ist nicht erforderlich. Der bewiesene Pfad ist einfaches IPv4-TCP:

  1. Der Angreifer sendet ein SYN mit einer IPv4-Record-Route-Option.
  2. Der Kernel speichert die Optionen am Request-Socket (ireq_opt).
  3. Ein erneut übertragenes SYN baut ein SYNACK und liest diese Optionen.
  4. Der Handshake wird abgeschlossen; der Child-Socket erhält den gleichen Zeiger.
  5. Die Anwendung accept()t das Child, setzt SO_LINGER(0) und schließt es. inet_sock_destruct() gibt die Optionen mit kfree() frei.
  6. Der SYNACK-Pfad liest noch immer den freigegebenen Speicher.
  7. Der gleichzeitige Lese-/Schreibzugriff muss auf zwei CPUs erfolgen.

Unser früherer Auslöser war in zweierlei Hinsicht falsch: Der Victim hat das Child nie akzeptiert/geschlossen (free_sock=0), und wir haben ein RST gesendet, anstatt uns auf das Server-Close zu verlassen. Der aktuelle Code ergänzt die korrekten Teile:

  • listen --accept-close — accept + SO_LINGER(0) + close.
  • --sync — ACK + doppeltes SYN gleichzeitig, kein RST, Record-Route-Optionen.

Der Upstream-Fix lautet genau:

-    kfree(rcu_dereference_protected(inet->inet_opt, 1));
+    kfree_rcu(rcu_dereference_protected(inet->inet_opt, 1), rcu);

und dieselbe Änderung in tcp_v4_reqsk_destructor().

Inhalt

PfadWas
rust-poc/der native Rust-PoC: statische ELF-Analyse, kprobes, Trigger-Modi
lab/Alpine + PHP Loopback-Opfer für die alten lokalen Tests
scripts/lokale Repro-Helfer, Helfer für autorisierte Audits
docs/FINDINGS.mdwas getestet wurde, was bestätigt wurde, was nicht
docs/EXPLOITATION-NOTES.mdUmfang: nur Bug-Trigger, kein RCE
docs/evidence/bereinigte Beispiel-Evidenz

Schnellstart

cd rust-poc
cargo build --release

# static analysis (no root)
./target/release/cve-2026-98432 static

# runtime reachability (root, tracefs)
sudo ./target/release/cve-2026-98432 runtime

# correct local vector: accept+close server + --sync trigger
cd ..
PASSES=1 ./scripts/repro-sync.sh 8083

repro-sync.sh startet das --accept-close-Opfer auf 127.0.0.1:8083, führt den Sync-Trigger mit sudo aus und gibt free_sock, use_build und das UAF- Urteil aus. Ein sauberer Lauf ist kein Beweis für Sicherheit: Die Rate liegt bei etwa 1e-7 pro Versuch und die Ereignisse treten gehäuft auf.

Wenn artifacts/ fehlt, greifen static/runtime auf /boot zurück; das Legacy-Skript scripts/cve-2026-98432.sh --static kann die Kernel-Artefakte erzeugen.

Wie ein positives Ergebnis aussieht

Mit KASAN meldet der Kernel einen slab-use-after-free in inet_csk_route_req / ip_options_build mit dem Free-Stack in inet_sock_destruct / inet_release. Die tcp2kaslr-Harness erreicht dies in etwa 134k Versuchen mit KASAN; auf einem normalen Kernel wurde dieselbe Race nur zweimal in ~48M Versuchen beobachtet.

Verantwortungsvolle Nutzung

Testen Sie nur Kernel und Hosts, die Ihnen gehören oder für die Sie ausdrücklich autorisiert sind zu testen. Der Trigger ist eine Kernel-Race und kann den Host zum Absturz bringen. Verwenden Sie eine Wegwerf-VM mit einem Snapshot.

Referenzen

  • offline-ant/tcp2kaslr — Bug-Trigger, KASAN-Nachweis, Analyse: https://github.com/offline-ant/tcp2kaslr
  • Upstream-Patch: ipv4: free inet_opt and ireq_opt after an RCU grace period (Eric Dumazet), kfree → kfree_rcu in net/ipv4/af_inet.c und net/ipv4/tcp_ipv4.c.

Lizenz

MIT. Siehe LICENSE.

Tool herunterladen