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
CVE-2025-40271 — CVE-2025-40271 Modifed By MadEploits | Kitploit
Tools/GitHubGitHub/madexploits/cve-2025-40271
Privilege EscalationVulnerability AnalysisExploitationPapers & ResearchLearning & EducationBinary Exploitation
GitHubmadexploits/cve-2025-40271

CVE-2025-40271

CVE-2025-40271 Modifed By MadEploits

Repository anzeigen
1vor 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-2025-40271 — proc_readdir_de() rb-tree UAF LPE

Proof-of-Concept für eine lokale Privilegieneskalations-Schwachstelle im Linux-Kernel-Dateisystem proc. Der Fehler ist ein Use-After-Free in proc_readdir_de(), verursacht durch rb_erase() ohne RB_CLEAR_NODE(), wodurch veraltete Rot-Schwarz-Baum-Verknüpfungen zurückbleiben, die während der Verzeichnisauflistung durch einen Race-Condition-Angriff ausgenutzt werden können.

Autor: MadExploits

Original Vulnerability Research und C PoC von Aviral Srivastava (N-DAY RESEARCH). Dieses Repository enthält einen Shell-Port (exploit.sh) für Umgebungen, in denen eine Kompilierung nicht praktikabel ist.


Übersicht

FeldDetails
CVECVE-2025-40271
Komponentefs/proc — proc_readdir_de() / remove_proc_entry()
TypUse-After-Free (rb-tree stale links)
AuswirkungLokale Privilegieneskalation (LPE)
Architekturx86_64
BetroffenLinux-Kernel bis einschließlich 6.18-rc5

Grundursache

Wenn ein proc-Verzeichniseintrag entfernt wird, wird rb_erase() auf den rb-Knoten des Eintrags aufgerufen, ohne RB_CLEAR_NODE(). Freigegebene Knoten können über veraltete Baumverknüpfungen erreichbar bleiben. Wenn getdents64() mit der Entfernung von Schnittstellen unter /proc/self/net/dev_snmp6/ um die Wette läuft, kann der Kernel freigegebenen Speicher lesen — der oft durch gesprayte msg_msg-Objekte zurückgewonnen wurde — und anomale d_ino-Werte zurückgeben, die Kernel-Heap-Pointer preisgeben.


Betroffene und gepatchte Kernel

Der PoC überprüft die laufende Kernelversion und beendet sich bei gepatchten Builds:

Zweig

Repository-Inhalt

DateiBeschreibung
exploit.cVollständiger C PoC — Netlink-Veth-Verwaltung, pthread-Race, msg_msg-Spray
exploit.shShell-Port ohne Kompilierung — unshare, ip, eingebettetes Python 3 für Syscalls/Race

Beide Implementierungen folgen dem gleichen Ausnutzungsablauf:

  1. Benutzer- + Netzwerk-Namespace betreten (CAP_NET_ADMIN im Netz-NS erlangen)
  2. Veth-Paare erstellen → /proc/self/net/dev_snmp6/ befüllen
  3. getdents64() mit schneller Veth-Löschung + Heap-Spray um die Wette laufen lassen
  4. UAF über Kernel-Pointer-ähnliche d_ino-Werte erkennen
  5. Eskalation versuchen (vollständige LPE erfordert kernel-spezifische KASLR-Offsets)

Anforderungen

Allgemein

  • Linux x86_64
  • Unprivileged User Namespaces aktiviert:
    root@kitploit:~
    cat /proc/sys/kernel/unprivileged_userns_clone
    # muss 1 sein
    
  • Nicht-Root-Benutzer (PoC beendet sich, wenn bereits Root)

exploit.c

  • gcc mit pthreads
  • Linux-Header (linux/netlink.h, etc.)
root@kitploit:~
gcc -o exploit exploit.c -lpthread

exploit.sh

  • bash
  • python3
  • ip (iproute2)
  • unshare (util-linux mit --map-root-user-Unterstützung)

Kein Compiler erforderlich.


Verwendung

Shell-Version (für schnelle Tests empfohlen)

root@kitploit:~
chmod +x exploit.sh
./exploit.sh

C-Version

root@kitploit:~
gcc -o exploit exploit.c -lpthread
./exploit

Erwartete Ausgabe

Angreifbarer Kernel — UAF ausgelöst (teilweiser Erfolg):

root@kitploit:~
[+] Kernel X.Y.Z — VULNERABLE
[+] Namespace ready...
[+] Created 32 veth pairs (/proc/self/net/dev_snmp6 populated)
[+] UAF HIT! d_ino=0xffff8880........ (kernel heap pointer)
[+] Kernel heap leak: 0xffff8880........
[*] PARTIAL SUCCESS: UAF + heap leak DEMONSTRATED

Gepatchter Kernel:

root@kitploit:~
[-] Kernel X.Y.Z — PATCHED
[*] Kernel is patched. Nothing to do.

Hinweise zur Ausnutzung

  • Heap-Leak: Wenn der Race gewonnen wird, enthält d_ino einen Wert, der dem x86_64-Kernel-Pointer-Muster (0xffff000000000000) entspricht, typischerweise vom msg_msg-Header m_list, der mit freigegebenen proc_dir_entry-Daten überlappt.
  • Vollständige LPE: Das Überschreiben von modprobe_path erfordert den Offset zwischen der geleakten Heap-Adresse und der Kernel-Textbasis — dieser ist build-spezifisch (KASLR). Der PoC demonstriert den UAF und den Leak; eine vollständige Kette benötigt Offsets für Ihr Zielkernel-Image.
  • Zuverlässigkeit: Der Erfolg hängt vom Scheduler-Timing ab. Der PoC wiederholt die Race-Versuche standardmäßig bis zu 30 Mal.

Abhilfe

  • Aktualisieren Sie auf einen gepatchten Kernel (siehe Tabelle oben).
  • Falls User Namespaces nicht benötigt werden, deaktivieren Sie die unprivilegierte Erstellung:
    root@kitploit:~
    sysctl -w kernel.unprivileged_userns_clone=0
    
  • Wenden Sie die Sicherheitsupdates des Herstellers für CVE-2025-40271 an.

Haftungsausschluss

Dieses Projekt ist ausschließlich für autorisierte Sicherheitsforschung, Bildung und defensive Tests bestimmt.

  • Führen Sie es nur gegen Systeme aus, die Sie besitzen oder für die Sie eine ausdrückliche schriftliche Genehmigung zum Testen haben.
  • Die unbefugte Nutzung gegen Systeme Dritter kann gegen geltendes Recht verstoßen.
  • Die Autoren und Mitwirkenden übernehmen keine Verantwortung für den Missbrauch dieses Codes.

Danksagungen

RolleName
Repository-AutorMadExploits
Original CVE-Forschung & C PoCAviral Srivastava — N-DAY RESEARCH

Lizenz

Nutzung auf eigene Gefahr. Es wird keine Gewährleistung übernommen.

Tool herunterladen
Behoben in
5.10.x5.10.247+
6.1.x6.1.159+
6.6.x6.6.123+
6.12.x6.12.73+
6.18+6.18-rc6+
7.x+Gepatcht