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-4138_tarfile_filter_bypass — CVE-2025-4138 - Python Écriture arbitraire de fichier hors du répertoire d'extraction | Kitploit
Outils/GitHubGitHub/thefizzyfish/cve-2025-4138_tarfile_filter_bypass
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCTFTests d'Intrusion
GitHubthefizzyfish/cve-2025-4138_tarfile_filter_bypass

CVE-2025-4138_tarfile_filter_bypass

CVE-2025-4138 - Python Écriture arbitraire de fichier hors du répertoire d'extraction

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
Voir le dépôt
3il y a 6 moisPas encore vérifié

CVE-2025-4138 — Contournement de Python tarfile filter="data"

Écriture arbitraire de fichiers en dehors du répertoire d'extraction via une chaîne de liens symboliques PATH_MAX.

Versions concernées

  • Python 3.12.0 – 3.12.10
  • Python 3.13.0 – 3.13.3
  • Corrigé dans 3.12.11 / 3.13.4

Crédits :

Signaleur : Caleb Brown (Google)

Comment ça fonctionne

Le filtre de données tarfile de Python valide les cibles des liens symboliques à l'aide de os.path.realpath(). Lorsque le chemin résolu dépasse PATH_MAX (4096 octets sous Linux), realpath() cesse silencieusement de résoudre et ajoute les composants restants — y compris ../ — sous forme de chaînes littérales. Le filtre voit un chemin sûr ; le noyau suit la véritable traversée.

L'exploit construit un tar en quatre étapes :

  1. Chaîne de liens symboliques — 16 niveaux de répertoires longs (247 caractères chacun) avec de courts alias de liens symboliques (a→ddd..., b→ddd...). Gonfle le chemin résolu à ~3968 octets.
  2. Lien symbolique pivot — ../ × 16 à la fin de la chaîne. realpath() déborde et ne peut pas le résoudre. Le noyau remonte jusqu'à la racine d'extraction.
  3. Lien symbolique d'évasion — Passe par le pivot, remonte jusqu'à /, puis descend vers le répertoire cible.
  4. Fichier payload — Écrit via le lien symbolique d'évasion vers le chemin cible en tant que root.

Utilisation

Pour ajouter/remplacer authorized_keys pour l'utilisateur root

Créer une clé SSH dans /tmp

root@kitploit:~
ssh-keygen -t ed25519 -f /tmp/key -N ""

Créer le fichier evil.tar

root@kitploit:~
python3 CVE-2025-4138_tarfile_filter_bypass.py \
    -o evil.tar \
    -t /root/.ssh/authorized_keys \
    -p /tmp/key.pub \
    -m 0600
FlagDescription

Références

  • NVD — CVE-2025-4138
  • GHSA-hgqp-3mmf-7h8f

Réservé aux tests de sécurité autorisés et à une utilisation en CTF uniquement.

Télécharger l’outil
-o
Chemin de sortie de l'archive tar
-tChemin absolu du fichier à écrire sur la cible
-pFichier local à utiliser comme contenu du payload
-mPermissions de fichier en octal (défaut : 0644)