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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-68398 — # CVE-2026-68398 Ubuntu PPPoL2TP Use-after-free lokale Privilegieneskalation | Kitploit
Tools/GitHubGitHub/aramosf/cve-2026-68398
Privilege EscalationExploitationBinary-Exploitation
GitHubaramosf/cve-2026-68398

CVE-2026-68398

# CVE-2026-68398 Ubuntu PPPoL2TP Use-after-free lokale Privilegieneskalation

Repository anzeigen
1046vor 1 MonatNoch 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-68398: Ubuntu PPPoL2TP use-after-free zu lokalen Root-Rechten

CVE-2026-68398 Live-Exploit

Dieses Repository enthält einen an ein bestimmtes Build gebundenen Exploit zur lokalen Privilegienerweiterung für CVE-2026-68398, einen Use-after-free-Race zwischen der Empfangsverarbeitung von PPPoL2TP und der Zerstörung eines nicht angehängten PPP-Kanals. Es wurde in QEMU gegen das offizielle Ubuntu-22.04-Paket linux-image-5.15.0-187-generic (5.15.0-187.197) validiert.

Der finale Test startet als dedizierter Benutzer mit UID 1001, ohne zusätzliche Gruppen, ohne Capabilities und ohne sudo-Zugriff, und erlangt danach UID 0 im initialen Namespace. KASLR, SMEP, SMAP und AppArmor bleiben aktiviert. Der Gast wird nicht mit nokaslr, nopti, nosmep oder nosmap gebootet.

Warnung

Dieser Code beschädigt absichtlich den Kernel-Heap-Zustand und ist an genau einen Ubuntu-Kernel-Build gebunden. Ein fehlgeschlagenes Race kann einen Kernel-Panic auslösen oder das System beschädigen. Führe ihn nur in einer isolierten, wegwerfbaren VM aus, die dir gehört.

Schwachstelle

pppol2tp_recv() wird im L2TP-UDP-Empfangspfad innerhalb eines kritischen RCU-Leseabschnitts ausgeführt und ruft schließlich ppp_input(&po->chan) auf. Der PPPoX-Socket und sein eingebetteter ppp_channel sind RCU-sicher, aber das interne struct channel, das von ppp_input() verwendet wird, ist eine separate Allokation.

Bei einem Kanal, der mit PPPIOCGCHAN gebunden, aber weder an eine PPP-Einheit angehängt noch gebrückt ist, gab der Schließpfad dieses interne Objekt sofort frei:

RX:    l2tp_udp_encap_recv -> pppol2tp_recv -> ppp_input(channel)
CLOSE: pppol2tp_release -> pppox_unbind_sock
       -> ppp_unregister_channel -> ppp_release_channel -> kfree(channel)

Der Empfangspfad kann daher auf der skb-Warteschlange und der Waitqueue des freigegebenen Kanals operieren. Der Fix fügt struct channel einen RCU-Callback hinzu und verschiebt das Leeren der Warteschlange sowie die Freigabe, bis eine RCU-Grace-Period verstrichen ist.

Die Schwachstelle wurde upstream von Norbert Szetei von Doyensec entdeckt und behoben. Der Mainline-Fix ist ec4215683e47424c9c4762fd3c60f552a3119142.

Betroffene und behobene Versionen

Der Linux-CNA-Eintrag gibt an, dass die verwundbare Linie mit Linux 4.15 beginnt. Herstellerkernel können den Fix unter einer anderen Versionsnummer enthalten; daher haben der exakte Quellcode bzw. das Paket-Changelog Vorrang vor dieser Tabelle.

Kernel-SerieErste behobene VersionFix-Commit
6.6.y6.6.1484bb84e964ff0
6.12.y6.12.1013ab32218d718
6.18.y6.18.42c9574b8a8ede
7.1.y7.1.606213c85d8c0
Mainline7.2-rc4ec4215683e47

Ältere unterstützte Herstellerlinien benötigen einen Backport. Stand 2026-08-12 markiert der Ubuntu-CVE-Tracker das linux-Paket von Jammy als needs-triage; es wurde kein korrigiertes Ubuntu-Jammy-Paket identifiziert. Der getestete Quellcode von 5.15.0-187.197 ruft weiterhin direkt kfree(pch) auf und ist verwundbar.

Validiertes Zielsystem

EigenschaftWert
DistributionUbuntu 22.04.5 LTS (Jammy)
Kernel-Paketlinux-image-5.15.0-187-generic / 5.15.0-187.197
Kernel-Release5.15.0-187-generic #197-Ubuntu
Architekturx86-64
VMQEMU/KVM, -cpu host, vier vCPUs, 5 GiB RAM
Anfängliche Identitätuid=1001(poc) gid=1001(poc) groups=1001(poc)
Anfängliche Capabilitiesinheritable, permitted, effective und ambient alle null
Endgültige Identitätuid=0(root) gid=0(root) in den initialen Namespaces
Boot-ÄnderungenKeine; Standard-Befehlszeile, KASLR aktiviert

Der Kernel wurde nicht neu kompiliert. Dem minimalen Cloud-Image fehlte linux-modules-extra-5.15.0-187-generic, daher wurde dieses offizielle Ubuntu-Paket installiert, um l2tp_ppp bereitzustellen. Eine normale Jammy-Installation über das Metapaket linux-generic hängt bereits vom passenden modules-extra-Paket ab. Das Protokollmodul wird automatisch geladen, wenn der Exploit seinen PPPoL2TP-Socket erstellt.

Anforderungen und Standardzustand von Ubuntu

AnforderungZustand bei Ubuntu 5.15.0-187Exploit-Nutzung
PPPCONFIG_PPP=yEingebaut
L2TP / PPPoL2TPCONFIG_L2TP=m, CONFIG_PPPOL2TP=mOffizielles Modul aus linux-modules-extra
User-KeysCONFIG_KEYS=yBelegt den freigegebenen kmalloc-256-Kanal wieder
AppArmorCONFIG_SECURITY_APPARMOR=yBleibt aktiv; die gefälschten Credentials enthalten ein gültiges unconfined-Label
KASLRCONFIG_RANDOMIZE_BASE=yBleibt aktiv; der Slide wird zur Laufzeit ermittelt
SMAPCONFIG_X86_SMAP=yBleibt aktiv
User-/Netzwerk-NamespacesVon Ubuntu aktiviert, aber nicht verwendetKein Namespace-Setup oder Capability-Gewinn erforderlich
/dev/pppNicht erforderlichDer Kanal ist gebunden, aber nie mit einer PPP-Einheit verbunden

Der automatische KASLR-Detektor nutzt einen x86-Prefetch-Timing-Seitenkanal und erfordert RDTSCP und inaktives KPTI. Die getestete Host-CPU stellt rdtscp, smep und smap bereit, ist nicht von Meltdown betroffen, und Ubuntu lässt KPTI daher ohne Boot-Override inaktiv. Auf einer CPU, bei der /proc/cpuinfo das pti-Flag meldet, weigert sich der Detektor zu laufen. Dabei handelt es sich um eine exploit-spezifische Hardwarebedingung: Die zugrunde liegende CVE bleibt erreichbar, aber diese Version beansprucht keinen KASLR-Bypass auf einem System mit aktivem KPTI. Ein manuell angegebener Slide existiert nur für kontrollierte Diagnosen.

Exploit-Ablauf

  1. Vier Race-Worker erzeugen wiederholt einen gebundenen, aber nicht angehängten PPPoL2TP-Kanal, senden gültige L2TPv2/PPP-Frames von anderen CPUs und schließen den Data-Socket.
  2. Ein User-Key-Payload belegt den freigegebenen struct channel wieder. Der weiterhin laufende RX-Pfad behandelt kontrollierte Key-Bytes als seine skb-Warteschlange und Waitqueue.
  3. Warteschlangen-Listenoperationen legen über das lesbare Key-Payload einen lebenden skb-Zeiger offen. Ein zweites kontrolliertes Unlink verwendet core_pattern als Offenlegungs-Scratch und legt einen Key-Allokationszeiger offen.
  4. Ein 224-Byte-Key-Payload wird zu einem persistenten Credential-Träger. Die Wiederholung der Warteschlangen-Offenlegung gibt die Adresse des Trägers preis.
  5. Zwei weitere Stufen (Zeigerquelle und Unlink) platzieren einen gültigen AppArmor-Credential-Blob-Zeiger und ein gefälschtes unconfined-Label in die gefälschten Credentials.
  6. Der zurückgewonnene Waitqueue-Eintrag ruft override_creds() mit den gefälschten Credentials auf. UID-/GID-Felder, Capabilities sowie die erforderlichen User-, Namespace-, Ucount- und Gruppen-Pointer entsprechen exakt dem Ubuntu-Build.
  7. Der vorübergehend privilegierte Ausführungskontext kopiert /proc/self/exe in eine eindeutige Datei in /tmp, ändert sie auf Root-Besitz mit Modus 4755 und verifiziert diese Attribute.
  8. Die ursprüngliche unprivilegierte Task führt diese SUID-Kopie aus, erlangt echte UID/GID 0, entfernt den temporären Helfer und führt /usr/bin/id aus.
Tool herunterladen