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-68138 — Proof-of-Concept-Exploit für eine lokale Privilege-Escalation bei einer Race Condition in der Linux-qdisc-Rate-Table, die mithilfe von BPF-Heap-Grooming und einem Pipe-Leak Root-Rechte erlangt. | Kitploit
Tools/GitHubGitHub/aramosf/cve-2026-68138
Privilege EscalationSchwachstellenanalyseExploitationBinary-Exploitation
GitHubaramosf/cve-2026-68138

CVE-2026-68138

Proof-of-Concept-Exploit für eine lokale Privilege-Escalation bei einer Race Condition in der Linux-qdisc-Rate-Table, die mithilfe von BPF-Heap-Grooming und einem Pipe-Leak Root-Rechte erlangt.

Repository anzeigen
33611vor 1 MonatVon Kitploit 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-68138: Race in der Linux-qdisc-Rate-Tabelle zu lokalem Root

CVE-2026-68138 Live-Exploit

Dieses Repository enthält einen Proof-of-Concept-Exploit zur lokalen Privilegieneskalation für CVE-2026-68138, eine Race-Bedingung im Rate-Table-Code der Linux-Traffic-Control. In der getesteten QEMU-Umgebung eskaliert der PoC von einem normalen Prozess mit äußerer UID 1000 zu einer Shell mit UID 0 im initialen User-Namespace.

Warnung

Dieser Code beschädigt absichtlich den Zustand des Kernel-Heaps. Verwenden Sie ihn ausschließlich in einer isolierten, wegwerfbaren VM, die Ihnen gehört. Eine verpasste Race oder eine verfrühte Bereinigung kann den Gast zum Absturz bringen (Kernel-Panic). Führen Sie ihn nicht auf einer Workstation, einem Server oder einem System Dritter aus.

Zusammenfassung der Schwachstelle

qdisc_get_rtab() und qdisc_put_rtab() verwalten eine prozessglobale einfach verkettete Liste, qdisc_rtab_list, sowie einen einfachen nicht-atomaren int refcnt. Historisch hielten die Aufrufer den RTNL-Mutex, der den Zugriff auf die Liste und den Referenzzähler serialisierte.

Der Flower-Klassifizierer setzt TCF_PROTO_OPS_DOIT_UNLOCKED. Eine RTM_NEWTFILTER-Anfrage für eine Flower-Regel kann folglich eine Police-Action erreichen und die qdisc-Rate-Table-Helfer ohne RTNL aufrufen:

tc_new_tfilter()
  -> fl_change()
     -> tcf_exts_validate_ex()
        -> tcf_action_init()
           -> tcf_police_init()
              -> qdisc_get_rtab()/qdisc_put_rtab()

Parallele Anfragen, die dieselbe Rate-Tabelle verwenden, können zu einer Race-Bedingung auf der globalen Liste und ihrem Referenzzähler führen. Das Ergebnis ist ein Use-after-Free oder Double-Free von struct qdisc_rate_table, einem 1056-Byte-Objekt, das auf dem getesteten x86-64-Kernel aus kmalloc-2k alloziert wird.

Da die Liste global und nicht pro Netzwerk-Namespace ist, konkurrieren Anfragen aus getrennten Netzwerk-Namespaces weiterhin um dasselbe Objekt.

Betroffene und behobene Versionen

Der Linux-CNA-Eintrag identifiziert den Einführungs-Commit 470502de5bdb, der in Linux 5.1 veröffentlicht wurde.

LinieStatusCommit/Version
Linux vor 5.1Nicht betroffenDie einführende Änderung fehlt
Linux 5.1 bis 7.1.5Betroffen, sofern kein Hersteller-Backport vorhanden ist470502de5bdb bis zu dem Commit vor dem stabilen Fix
Linux 7.1.yBehoben7.1.6, fb29e1b41052
Linux-7.2-EntwicklungsreiheBetroffen vor rc5rc1 bis rc4
MainlineBehoben7.2-rc5, f43ee0c0730d

Distributionskernel backporten Korrekturen häufig, ohne auf die oben gezeigte Upstream-Version zu wechseln. Prüfen Sie, ob einer der beiden Fixing-Commits – oder die entsprechende Änderung des qdisc-Rate-Table-Spinlocks – im exakt verwendeten Kernelquelltext des Systems vorhanden ist.

Der Exploit wurde gegen den verwundbaren Commit 92d3817649df2b0b6a008a686c8275c88d7ef594, dem direkten Parent des Mainline-Fixes, entwickelt und validiert. Als Kontrolle mit behobenem Kernel diente f43ee0c0730d6191629b5ee1ceae27b1ebfdc047.

Status der Ubuntu-Distributionen

Stand 2026-08-12 lieferte die Ubuntu-CVE-Tracker-Suche keinen Eintrag für diese CVE. Die folgende Tabelle ist daher eine direkte Inspektion des Quellcodes und keine Sicherheitsstatus-Bewertung durch Canonical. Jeder verlinkte Ubuntu-Tag enthält weiterhin das ungeschützte qdisc_rtab_list und weist den korrigierenden qdisc_rtab_lock nicht auf.

Ubuntu-LinieUntersuCHtes Paket/TagQuellcode-Ergebnis
Ubuntu 22.04 GA5.15.0-187.197Verwundbarer Code vorhanden; vollständiger Exploit in QEMU reproduziert
Ubuntu 22.04 HWE6.8.0-136.136~22.04.1Verwundbarer Code vorhanden; Exploit-Kette nicht getestet
Ubuntu 24.04 HWE7.0.0-28.28~24.04.1Verwundbarer Code vorhanden; diese Exploit-Kette ist mit dessen Allocator-Härtung nicht kompatibel
Ubuntu 26.047.0.0-28.28Verwundbarer Code vorhanden; diese Exploit-Kette ist mit dessen Allocator-Härtung nicht kompatibel

Zum Zeitpunkt der Inspektion wurde kein korrigiertes Ubuntu-Paket identifiziert. Zukünftige Ubuntu-Pakete sollten auf ein Backport-Äquivalent zu den verlinkten Upstream-Fixes geprüft werden, anstatt nur anhand ihrer Versionsnummer beurteilt zu werden.

Der buildspezifische Ubuntu-22.04-Exploit, das QEMU-Labor, die exakte Image-Checksumme und die Bedingungen sind in ubuntu/README.md dokumentiert. Er wurde gegen den offiziellen Kernel 5.15.0-187-generic #197-Ubuntu mit aktiviertem Memory-Cgroup-Accounting validiert.

Erforderliche Bedingungen für den Haupt-PoC

Der zugrunde liegende Fehler und diese spezielle Exploit-Kette haben unterschiedliche Anforderungen. Der PoC wurde validiert mit:

  • x86-64-Linux und vier virtuellen CPUs;
  • unprivilegierte User-Namespaces und Netzwerk-Namespaces aktiviert;
  • CONFIG_USER_NS=y und CONFIG_NET_NS=y;
  • CONFIG_NET_CLS=y, CONFIG_NET_CLS_FLOWER=y, CONFIG_NET_CLS_ACT=y und CONFIG_NET_ACT_POLICE=y;
  • klassische BPF-Socket-Filter und BPF-JIT-Unterstützung;
  • CONFIG_TMPFS_XATTR=y für den simple_xattr-Heap-Spray;
  • CONFIG_MODULES=y und ein nutzbares /sbin/modprobe für den finalen Root-Helfer;
  • CONFIG_MEMCG=n, sodass sich die von dieser Kette verwendeten qdisc/BPF/pipe/xattr-Allokationen den erwarteten kmalloc-2k-Cache teilen;
  • ein Dateideskriptor-Limit pro Prozess von mindestens 4096; und
  • eine wegwerfbare VM mit ungefähr 5 GiB RAM.

CONFIG_SLAB_BUCKETS=y, Freelist-Randomisierung und Freelist-Härtung waren im erfolgreichen Testkernel aktiviert. KASLR wird nicht grundsätzlich mit einer hartcodierten Adresse umgangen: Der PoC erhält die benötigten Page- und Operations-Zeiger aus dem Pipe-Leak. Das mitgelieferte Labor verwendete nokaslr, um das Debugging zu vereinfachen.

Kernel mit aktiviertem Memory-Cgroup-Accounting oder anderen Allocator-/Cache-Layouts erfordern eine andere Reclaim-Strategie. Der PoC erhebt bewusst keinen Anspruch auf Portabilität über beliebige Distributionskonfigurationen hinweg.

Die separate Ubuntu-Variante implementiert diese andere Reclaim-Strategie; ihre Anforderungen sind bewusst enger gefasst und in ubuntu/README.md aufgelistet.

Ausnutzungsprozess

1. Die Qdisc-Race auslösen

Vier Worker-Threads betreten verschiedene Netzwerk-Namespaces und erzeugen Flower-Filter mit Police-Actions. Drei Worker durchlaufen den erfolgreichen Aktionspfad; einer liefert nach dem Erwerb beider Rate-Table-Referenzen einen absichtlich ungültigen Estimator und erzwingt so den Bereinigungspfad. Diese Kombination macht die gleichzeitige Manipulation von Referenzzähler und Liste reproduzierbar, ohne den Flower-Klassifizierer-Zustand zwischen den Workern zu teilen.

2. qdisc_rate_table mit klassischem BPF wiederverwenden

Tool herunterladen