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
Tools/GitHubGitHub/0xblackash/cve-2026-68121
Privilege EscalationSpeicherforensikSchwachstellenanalyseExploitationReverse EngineeringPapers & ForschungLernen & BildungBinary-ExploitationLabs & Praxis
GitHub0xblackash/cve-2026-68121

CVE-2026-68121

Forschungs-Repository für CVE-2026-68121, einen Use-after-Free im Linux-Kernel-PPPoE in pppoe_sendmsg(), der lokale Rechteausweitung ermöglicht, mit PoC, Ursachenanalyse und Laboreinrichtung.

vor 7h 49mNoch 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
Repository anzeigen

⚡ CVE-2026-68121 - PPPoEject

Linux-Kernel-PPPoE-Use-After-Free → Lokale Rechteausweitung

Eine Speicherbeschädigungsschwachstelle im Linux-Kernel im PPPoE-Übertragungspfad, verursacht durch einen veralteten Zeiger auf einen sk_buff-Header, nachdem ein Geräte-Header-Callback den skb-Head neu zugewiesen hat.


⚠️ Haftungsausschluss

Dieses Repository ist ausschließlich für autorisierte Sicherheitsforschung, Kernel-Schwachstellenanalyse, CTF-Umgebungen und defensives Testen gedacht.

Führen Sie Proof-of-Concept-Code nicht gegen Systeme ohne ausdrückliche Autorisierung aus.


📌 Schwachstellenübersicht

Der CVE-Eintrag identifiziert die Schwachstelle als veralteten PPPoE-Header-Zeiger, der ungültig werden kann, wenn dev_hard_header() den skb-Head neu zuweist.


🧬 Beschreibung der Schwachstelle

Die Schwachstelle befindet sich in:

root@kitploit:~
drivers/net/ppp/pppoe.c

innerhalb von:

root@kitploit:~
pppoe_sendmsg()

Die anfällige Sequenz ist konzeptionell:

root@kitploit:~
pppoe_sendmsg()
      │
      ▼
PPPoE-Header-Zeiger speichern
      │
      ▼
dev_hard_header()
      │
      ▼
skb-Head kann neu zugewiesen werden
      │
      ▼
Alter Zeiger wird veraltet
      │
      ▼
PPPoE schreibt über veralteten Zeiger
      │
      ▼
Use-After-Free
      │
      ▼
Kernel-Speicherbeschädigung

Der Linux-Netzwerkcode erlaubt Geräte-Header-Callbacks, den sk_buff-Head neu zuzuweisen. Ein Zeiger in den alten Head kann daher nach der Rückkehr von dev_hard_header() nicht sicher wiederverwendet werden.


🔬 Grundursache

Das Kernproblem ist eine Lebensdauer-Verletzung.

pppoe_sendmsg() erhält einen Zeiger auf den PPPoE-Header, bevor es Folgendes aufruft:

root@kitploit:~
dev_hard_header()

Dieser Callback kann jedoch bewirken, dass sich der skb-Head verschiebt.

Konzeptionell:

root@kitploit:~
Vor dem Callback:

skb
┌──────────────────────────────┐
│ Ethernet │ PPPoE │ Payload   │
└──────────┴───────┴───────────┘
           ▲
           │
       veralteter Zeiger


Nach skb-Erweiterung:

alter skb-Head ──X──► freigegeben

neuer skb-Head
┌────────────────────────────────────┐
│ Ethernet │ PPPoE │ Payload         │
└──────────┴───────┴─────────────────┘
           ▲
           │
      gültige Position

Der alte Zeiger verweist weiterhin auf die freigegebene Allokation.

Wenn PPPoE anschließend den Header über diesen Zeiger schreibt, führt der Kernel einen Use-After-Free-Schreibzugriff aus.


🧠 Auslösebedingung

Der dokumentierte Auslöser beinhaltet eine Race-Condition um copy_from_user() und Änderungen an den Header-Operationen eines Team-Geräts.

Eine beschriebene Sequenz ist:

root@kitploit:~
PPPoE sendmsg()
      │
      ▼
copy_from_user() blockiert
      │
      │
      ├───────────────┐
      │               │
      ▼               ▼
Team-Gerät ändert     Erster Nicht-Ethernet-
Header-Operationen    Port wird hinzugefügt
                      │
                      ▼
               Delegierter GRE-Callback
                      │
                      ▼
               skb-Head-Erweiterung
      │               │
      └───────────────┘
              │
              ▼
       veralteter PPPoE-Zeiger
              │
              ▼
       Use-After-Free-Schreibzugriff

Der CVE-Eintrag merkt an, dass dies auftreten kann, wenn der erste Nicht-Ethernet-Port zu einem leeren Team-Gerät hinzugefügt wird und der delegierte GRE-Header-Callback den skb-Head erweitert.


💥 Sicherheitsauswirkung

Die Schwachstelle kann Folgendes verursachen:

  • Kernel-Heap-Use-After-Free
  • Kernel-Speicherbeschädigung
  • Kernel-Absturz / Denial of Service
  • Potenzielle Kernel-Speicheroffenlegung
  • Potenzielle beliebige Kernel-Speichermodifikation
  • Potenzielle Kernel-Codeausführung
  • Lokale Rechteausweitung

Der veröffentlichte CVSS-Vektor des CVE ist:

root@kitploit:~
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

mit einem Basiswert von 7.8 High.


🔎 Technische Angriffsfläche

Die relevanten Komponenten sind:

root@kitploit:~
PF_PPPOX / PPPoE-Socket
          │
          ▼
    pppoe_sendmsg()
          │
          ▼
     sk_buff (skb)
          │
          ▼
  dev_hard_header()
          │
          ▼
 Header-Callback des Netzwerkgeräts
          │
          ▼
 Potenzielle skb-Head-Erweiterung
          │
          ▼
 Veralteter PPPoE-Header-Zeiger
          │
          ▼
     UAF-Schreibzugriff

Der anfällige Code ist daher nicht einfach ein generischer PPPoE-Paketparser; die kritische Bedingung ist die Interaktion zwischen PPPoE-Socket-Übertragung und dynamischer skb-Head-Neuzuweisung.


🩹 Upstream-Fix

Der Upstream-Fix trägt den Titel:

root@kitploit:~
pppoe: reload header pointer after dev_hard_header()

Der Fix lädt den PPPoE-Header über den Network-Header-Offset des skb nach der Erstellung des Geräte-Headers neu.

Die wichtige Eigenschaft ist:

root@kitploit:~
Vorher:

Header-Zeiger
      │
      ▼
dev_hard_header()
      │
      ▼
skb verschiebt sich
      │
      ▼
Zeiger = veraltet ❌


Nachher:

dev_hard_header()
      │
      ▼
skb kann sich verschieben
      │
      ▼
Header über skb-Offset neu laden
      │
      ▼
Zeiger = gültig ✅

pskb_expand_head() aktualisiert den relevanten skb-Offset, wenn der skb-Head verschoben wird, wodurch die offsetbasierte Suche nach der Neuzuweisung sicher wird.


📊 Anfällig vs. Gepatcht


🧪 Forschungsumgebung

Ein kontrolliertes Labor kann wie folgt strukturiert werden:

root@kitploit:~
┌───────────────────────────────────────────────┐
│                 Linux-VM                      │
│                                               │
│       ┌───────────────┐                       │
│       │ PPPoE-Socket  │                       │
│       └───────┬───────┘                       │
│               │                               │
│               ▼                               │
│       ┌───────────────┐                       │
│       │ pppoe_sendmsg │                       │
│       └───────┬───────┘                       │
│               │                               │
│               ▼                               │
│       ┌───────────────┐                       │
│       │     Team      │                       │
│       └───────┬───────┘                       │
│               │                               │
│               ▼                               │
│       ┌───────────────┐                       │
│       │     GRE       │                       │
│       └───────────────┘                       │
│                                               │
└───────────────────────────────────────────────┘

Nützliche Kernel-Debugging-Werkzeuge:

root@kitploit:~
gdb
pwndbg
gef
crash
objdump
readelf
pahole

Kernel-Meldungen überwachen:

root@kitploit:~
sudo dmesg -w

PPPoE-Unterstützung prüfen:

root@kitploit:~
lsmod | grep pppoe

Verfügbare PPP-Module prüfen:

root@kitploit:~
find /lib/modules/$(uname -r) -iname '*pppoe*'

🔎 Kernel-Verifikation

Den aktuell laufenden Kernel prüfen:

root@kitploit:~
uname -r

PPPoE-bezogene Konfiguration prüfen:

root@kitploit:~
grep -E 'CONFIG_PPP|CONFIG_PPPOE' \
/boot/config-$(uname -r)

Typische relevante Optionen sind:

root@kitploit:~
CONFIG_PPP
CONFIG_PPP_ASYNC
CONFIG_PPP_SYNC_TTY
CONFIG_PPPOE

🧪 Reproduktions-Workflow

Für kontrollierte Kernel-Forschung:

root@kitploit:~
01. Anfälligen Kernel bauen
          ↓
02. Isolierte VM starten
          ↓
03. PPPoE-Unterstützung aktivieren
          ↓
04. Kontrollierte Netzwerktopologie erstellen
          ↓
05. Team/GRE-Interaktion konfigurieren
          ↓
06. PPPoE sendmsg() ausführen
          ↓
07. skb-Lebensdauer überwachen
          ↓
08. Kernel-Diagnosedaten erfassen
          ↓
09. Upstream-Patch anwenden
          ↓
10. Wiederholen und vergleichen

Das Ziel ist, die Speicher-Lebensdauer-Verletzung sicher zu reproduzieren und das Verhalten von anfälligem und gepatchtem Zustand zu vergleichen.


📂 Repository-Struktur

root@kitploit:~
CVE-2026-68121-PPPoEject/
│
├── README.md
│
├── exploit/
│   ├── poc.c
│   └── Makefile
│
├── analysis/
│   ├── root-cause.md
│   ├── pppoe-sendmsg.md
│   ├── skb-lifetime.md
│   └── patch-analysis.md
│
├── kernel/
│   ├── vulnerable/
│   └── patched/
│
├── lab/
│   ├── setup.sh
│   ├── cleanup.sh
│   └── topology.md
│
├── screenshots/
│
├── docs/
│   └── research-notes.md
│
└── LICENSE

🛡️ Gegenmaßnahmen

Die empfohlene Gegenmaßnahme ist die Aktualisierung auf einen Linux-Kernel, der den Upstream-Fix oder einen entsprechenden Distributions-Backport enthält.

Für Debian/Kali:

root@kitploit:~
sudo apt update
sudo apt full-upgrade

Danach neu starten:

root@kitploit:~
sudo reboot

Den laufenden Kernel überprüfen:

root@kitploit:~
uname -r

Distributions-Backports können unterschiedliche Versionsnummern verwenden, daher sollten Administratoren ihr installiertes Paket anhand der Sicherheitshinweise der Distribution überprüfen. Debian listet derzeit korrigierte Versionen auf, darunter 6.1.187-1 für Bookworm und 6.12.101-1 für Trixie.


📦 Upstream-Fix-Referenzen

Die Linux-Stable-Bäume enthalten den Fix über mehrere gepflegte Branches hinweg. Der CVE-Eintrag listet die entsprechenden Stable-Commits auf und identifiziert die betroffene Quelldatei als:

root@kitploit:~
drivers/net/ppp/pppoe.c

Die anfällige Historie beginnt mit der PPPoE-Implementierung des Linux-Kernels, und die korrigierte Commit-Serie endet bei dem Upstream-Fix, der durch 7a56e7c9b08e08fd55a1bcada24cf4fe3782b722 in den CVE-Daten repräsentiert wird.


🧩 Sicherheitslektionen

01 — Die Lebensdauer von Zeigern ist wichtig

Ein Zeiger in einen skb kann nicht als gültig angenommen werden, nachdem ein Callback ausgeführt wurde, der den skb-Head neu zuweisen kann.

02 — Callbacks können Annahmen ungültig machen

Netzwerk-Callbacks können das zugrunde liegende Speicherlayout verändern.

03 — Offsets verwenden, wenn sich Speicher verschieben kann

Der Patch zeigt, warum ein skb-relativer Offset sicherer ist als das Beibehalten eines rohen Zeigers über eine potenziell verschiebende Operation hinweg.

04 — Race-Conditions verstärken Speicherfehler

Der anfällige Zustand hängt von gleichzeitiger Aktivität rund um die Paketübertragung und die Konfiguration von Netzwerkgeräten ab.

05 — Kernel-UAFs haben hohe Auswirkungen

Ein veralteter Zeiger im Kernel-Netzwerkcode kann zu einem Speicherbeschädigungs-Primitiv mit Auswirkungen auf Vertraulichkeit, Integrität und Verfügbarkeit werden.


📚 Referenzen

  • CVE: CVE-2026-68121
  • Codename: PPPoEject
  • Linux-Subsystem: PPPoE
  • Quelle: drivers/net/ppp/pppoe.c
  • Primäre Funktion: pppoe_sendmsg()
  • Fix: pppoe: reload header pointer after dev_hard_header()
  • CVSS: 7.8 High
  • Debian Security Tracker: CVE-2026-68121
  • Linux Kernel / Stable-Referenzen: im CVE-Eintrag aufgeführt

⚡ PPPoEject

CVE-2026-68121

Linux Kernel · PPPoE · Use-After-Free · Kernel Security · LPE


Research • Analyze • Reproduce • Harden


0xBlackash

Tool herunterladen
FeldDetails
CVECVE-2026-68121
CodenamePPPoEject
KomponenteLinux Kernel
SubsystemPPPoE / Networking
Betroffene Dateidrivers/net/ppp/pppoe.c
Primäre Funktionpppoe_sendmsg()
FehlerklasseUse-After-Free
AuswirkungKernel-Speicherbeschädigung
Potenzieller ImpactLokale Rechteausweitung
CVSS v3.17.8 — High
AngriffsvektorLokal
AngriffskomplexitätNiedrig
Erforderliche RechteNiedrig
BenutzerinteraktionKeine
StatusGepatcht
SicherheitseigenschaftAnfälligGepatcht
Header-Zeiger vor Callback gespeichert✅—
skb-Head kann sich verschieben✅✅
Zeiger nach Callback aktualisiert❌✅
Dereferenzierung eines veralteten ZeigersMöglichVerhindert
Use-After-Free-SchreibzugriffMöglichEntschärft
Kernel-SpeicherbeschädigungMöglichEntschärft