Blog

Comprendre la faille de traversée de répertoire dans le module tarfile de Python

October 3, 2022
Laura Verheyde
Gros plan sur un serpent vert enroulé au repos sur une branche d'arbre sombre, sur fond noir.

Récemment, une équipe de chercheurs en sécurité a annoncé la découverte d'une vulnérabilité vieille de quinze ans dans la fonctionnalité d'extraction de fichiers tar de Python. Cette faille a été signalée pour la première fois en 2007 et répertoriée sous le nom de CVE-2007-4559. Une note a été ajoutée à la documentation officielle de Python, mais le bug en lui-même n'a jamais été corrigé.

Cette vulnérabilité pourrait affecter des milliers de projets logiciels, pourtant beaucoup ignorent la situation ou la manière d'y remédier. C'est pourquoi, chez Secure Code Warrior, nous vous donnons l'opportunité de simuler vous-même l'exploitation de cette faille pour en constater l'impact direct et acquérir une expérience pratique des mécanismes de ce bug persistant, afin de mieux protéger vos applications !

Essayez la Mission simulée dès maintenant.

La vulnérabilité : traversée de répertoire lors de l'extraction de fichiers tar

La traversée de chemin ou de répertoire se produit lorsqu'une entrée utilisateur non assainie est utilisée pour construire un chemin de fichier, permettant à un attaquant d'accéder à des fichiers, de les écraser, voire d'exécuter du code arbitraire.

La vulnérabilité réside dans le module tarfile de Python. Un fichier tar (tape archive) est un fichier unique, appelé archive. Il regroupe plusieurs fichiers ainsi que leurs métadonnées, et est généralement reconnu par l'extension .tar.gz ou .tgz. Chaque élément de l'archive peut être représenté par un objet TarInfo, qui contient des métadonnées telles que le nom du fichier, la date de modification, les droits d'accès, et plus encore.

Le risque provient de la capacité des archives à être extraites.

Lors de l'extraction, chaque élément nécessite un chemin de destination. Cet emplacement est créé en combinant le chemin de base avec le nom du fichier :

de PythonTarfile.py


Une fois ce chemin créé, il est transmis aux fonctions tarfile.extract ou tarfile.extractall pour effectuer l'extraction :

Python code defining extractall method that processes members and directories, copying and setting modes.
de PythonTarfile.py

Le problème ici est l'absence d'assainissement du nom de fichier. Un attaquant pourrait renommer des fichiers pour inclure des caractères de traversée de répertoire, tels que point point slash (../), ce qui forcerait le fichier à sortir du répertoire prévu et à écraser des fichiers arbitraires. Cela pourrait mener à une exécution de code à distance, une exploitation idéale pour un attaquant.

La vulnérabilité apparaît dans d'autres scénarios, si vous savez comment l'identifier. Outre la gestion des fichiers tar par Python, la vulnérabilité existe dans l'extraction de fichiers zip. Vous connaissez peut-être cela sous un autre nom, comme la vulnérabilité zip slip, qui s'est manifestée dans d'autres langages que Python !

LIEN VERS LA MISSION

Comment pouvez-vous atténuer les risques ?

Bien que la vulnérabilité soit connue depuis des années, les mainteneurs de Python considèrent que la fonctionnalité d'extraction fait ce qu'elle est censée faire. Dans ce cas, certains diraient « c'est une fonctionnalité, pas un bug ». Malheureusement, les développeurs ne peuvent pas toujours éviter d'extraire des fichiers tar ou zip provenant d'une source inconnue. Il leur appartient d'assainir les entrées non fiables pour prévenir les vulnérabilités de traversée de répertoire dans le cadre de pratiques de développement sécurisé.

Vous souhaitez en savoir plus sur l'écriture de code sécurisé et la réduction des risques avec Python ?

Essayez notre défi Python gratuitement.

Si vous souhaitez obtenir davantage de conseils de codage gratuits, consultez Secure Code Coach pour vous aider à maîtriser les pratiques de codage sécurisé.

‍

‍

Slogan

Gouvernez le développement assisté par IA avant la mise en production

Évaluez les risques liés à l'IA, appliquez des politiques de codage sécurisé dès le commit et accélérez la livraison sécurisée tout au long de votre cycle de développement.

Réserver une démo
Bibliothèque de ressources

Explorer plus d'articles

Accédez à du contenu expert sur le codage sécurisé, la gouvernance de l'IA et la gestion des risques logiciels.

tout parcourir
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Une culture de la sécurité : comment Sage a bâti son programme de champions

Découvrez comment Sage a renforcé sa sécurité grâce à une approche flexible axée sur les relations humaines, formant plus de 200 champions de la sécurité et obtenant une réduction mesurable des risques.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Mois de la sensibilisation à la cybersécurité 2026 : comprendre la sécurité de l'IA est essentiel à la défense de l'entreprise

Nous avons atteint un point où la plupart des grandes entreprises d'IA ont publiquement appelé à un ralentissement mondial du développement de l'IA afin de permettre aux garde-fous de sécurité de rattraper leur retard. Pourtant, la réalité est que de graves problèmes de sécurité se sont déjà concrétisés. Cela place d'innombrables responsables de la sécurité et équipes de direction dans une situation d'urgence, alors que les coûts financiers et les risques liés à la mise en œuvre de l'IA ne cessent de s'accumuler.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Levier 8 : Valoriser votre programme

Un programme de codage sécurisé a besoin de plus qu'un contenu de qualité pour réussir. Le levier 8 montre comment l'image de marque transforme la participation en une expérience convoitée, axée sur le statut.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Chaque employé est désormais en première ligne de la cybersécurité IA

Le paysage technologique des entreprises évolue à une vitesse que peu avaient anticipée avant qu'il ne soit trop tard. Nous avons officiellement franchi le cap du code écrit par l'humain et de l'assistance basique par copilote pour entrer dans l'ère du cycle de vie de développement agentique (ADLC). Si les agents IA autonomes promettent une efficacité sans précédent dans de multiples fonctions, ils apportent également une toute nouvelle catégorie de risques en matière de sécurité et de réglementation.

En savoir plus

Sécurisez le développement piloté par l'IA avant le déploiement

Identifiez les risques de développement, appliquez vos politiques et prévenez les vulnérabilités tout au long du cycle de vie de vos logiciels.

Réserver une démo
trust score
Aucun élément trouvé.