Icônes SCW
héros bg sans séparateur
Blog

Comprendre l'erreur de parcours de chemin dans le module tarfile de Python

Laura Verheyde
Publié le 03 octobre 2022
Dernière mise à jour le 9 mars 2026

Récemment, un groupe de chercheurs en sécurité a annoncé avoir découvert une faille vieille de quinze ans dans la fonctionnalité d'extraction des fichiers tar de Python. Cette vulnérabilité a été signalée pour la première fois en 2007 et référencée sous le numéro CVE-2007-4559. Une note a été ajoutée dans la documentation officielle de Python, mais la faille elle-même n'a pas été corrigée.

Cette vulnérabilité pourrait affecter des milliers de projets logiciels, mais beaucoup de personnes ne sont pas conscientes de la situation ou ne savent pas comment y remédier. C'est pourquoi, chez Security Code Warriors, nousvous offrons la possibilité de simuler vous-même l'exploitation de cette vulnérabilité afin de constater ses effets et de comprendre le mécanisme de cette erreur persistante, ce qui vous permettra de mieux protéger vos applications.

Veuillez essayer la simulation de mission dès maintenant.

Vulnérabilité : parcours de chemin lors de l'extraction d'un fichier tar

Lorsque des entrées utilisateur non vérifiées sont utilisées pour construire des chemins d'accès à des fichiers, cela peut entraîner un parcours de chemin ou de répertoire, permettant ainsi à un attaquant d'obtenir des privilèges d'accès, de remplacer des fichiers, voire d'exécuter du code arbitraire.

Cette vulnérabilité est présente dans le module tarfile de Python. Un fichier tar (archive sur bande) est un fichier unique appelé archive. Il regroupe plusieurs fichiers et leurs métadonnées, généralement identifiés par l'extension .tar.gz ou .tgz. Chaque élément de l'archive peut être représenté par un objet TarInfo contenant des métadonnées telles que le nom du fichier, la date de modification, le propriétaire, etc.

Le risque réside dans la possibilité de récupérer à nouveau les archives.

Lors de l'extraction, chaque membre doit indiquer un chemin d'accès. Cet emplacement est créé en combinant le chemin d'accès de base et le nom du fichier :

Extrait de Python Tarfile.py


Une fois ce chemin créé, il sera transmis au fichier tarfile.extra. tarfile.extra ou tarfile.extall pour exécuter la fonction d'extraction :

Extrait de Python Tarfile.py

Le problème ici est l'absence de nettoyage des noms de fichiers. Un attaquant pourrait renommer un fichier de manière à inclure des caractères de traversée de chemin, tels que des barres obliques inversées (../), ce qui permettrait au fichier de sortir du répertoire où il est censé se trouver et de remplacer n'importe quel fichier. Cela pourrait finalement conduire à l'exécution de code à distance, et le moment est venu d'exploiter cette faille.

Si vous savez comment identifier cette vulnérabilité, elle peut apparaître dans d'autres contextes. Outre le traitement des fichiers tar par Python, cette vulnérabilité existe également lorsde l'extraction de fichiers zip. Vous la connaissez peut-être sous un autre nom, tel que « vulnérabilité des fichiers compressés », qui a déjà été observée dans d'autres langages que Python.

Lien vers la tâche 

Comment réduire les risques ?

Bien que cette vulnérabilité soit connue depuis plusieurs années, les responsables de la maintenance de Python considèrent toujours que la fonctionnalité d'extraction fonctionne comme prévu. Dans ce contexte, certains pourraient affirmer qu'il s'agit d'une fonctionnalité et non d'un défaut. Malheureusement, les développeurs ne peuvent pas toujours éviter d'extraire des fichiers tar ou zip provenant de sources inconnues. Dans le cadre des pratiques de développement sécurisé, il est de leur responsabilité de nettoyer les entrées non fiables afin de prévenir les vulnérabilités de type « path traversal ».

Souhaitez-vous en savoir plus sur la manière d'écrire du code sécurisé et de réduire les risques avec Python ?

Nous vous invitons à essayer notre défi Python gratuit.

Si vous souhaitez obtenir davantage de guides de programmation gratuits, veuillez consulter le Code Coach pour la sécurité afin de vous familiariser avec les pratiques de codage sécurisé.

Veuillez consulter les ressources.
Veuillez consulter les ressources.

Récemment, un groupe de chercheurs en sécurité a annoncé avoir découvert une faille vieille de quinze ans dans la fonctionnalité d'extraction des fichiers tar de Python. Cette vulnérabilité a été signalée pour la première fois en 2007 et a été référencée sous le nom CVE-2007-4559. Une note a été ajoutée dans la documentation officielle de Python, mais la faille elle-même n'a pas été corrigée.

Souhaitez-vous en savoir davantage ?

En savoir plus

Secure Code Warrior peut aider votre organisation à sécuriser le code tout au long du cycle de vie du développement logiciel et à instaurer une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, directeur de la sécurité de l'information ou tout autre professionnel concerné par la sécurité, nous pouvons aider votre organisation à réduire les risques liés au code non sécurisé.

Veuillez réserver une démonstration.
Partager sur :
marques LinkedInSocialLogo x
Auteur
Laura Verheyde
Publié le 03 octobre 2022

Laura Verheyde est développeuse de logiciels à l'adresse Secure Code Warrior . Elle se consacre à la recherche de vulnérabilités et à la création de contenu pour Missions et Coding labs.

Partager sur :
marques LinkedInSocialLogo x

Récemment, un groupe de chercheurs en sécurité a annoncé avoir découvert une faille vieille de quinze ans dans la fonctionnalité d'extraction des fichiers tar de Python. Cette vulnérabilité a été signalée pour la première fois en 2007 et référencée sous le numéro CVE-2007-4559. Une note a été ajoutée dans la documentation officielle de Python, mais la faille elle-même n'a pas été corrigée.

Cette vulnérabilité pourrait affecter des milliers de projets logiciels, mais beaucoup de personnes ne sont pas conscientes de la situation ou ne savent pas comment y remédier. C'est pourquoi, chez Security Code Warriors, nousvous offrons la possibilité de simuler vous-même l'exploitation de cette vulnérabilité afin de constater ses effets et de comprendre le mécanisme de cette erreur persistante, ce qui vous permettra de mieux protéger vos applications.

Veuillez essayer la simulation de mission dès maintenant.

Vulnérabilité : parcours de chemin lors de l'extraction d'un fichier tar

Lorsque des entrées utilisateur non vérifiées sont utilisées pour construire des chemins d'accès à des fichiers, cela peut entraîner un parcours de chemin ou de répertoire, permettant ainsi à un attaquant d'obtenir des privilèges d'accès, de remplacer des fichiers, voire d'exécuter du code arbitraire.

Cette vulnérabilité est présente dans le module tarfile de Python. Un fichier tar (archive sur bande) est un fichier unique appelé archive. Il regroupe plusieurs fichiers et leurs métadonnées, généralement identifiés par l'extension .tar.gz ou .tgz. Chaque élément de l'archive peut être représenté par un objet TarInfo contenant des métadonnées telles que le nom du fichier, la date de modification, le propriétaire, etc.

Le risque réside dans la possibilité de récupérer à nouveau les archives.

Lors de l'extraction, chaque membre doit indiquer un chemin d'accès. Cet emplacement est créé en combinant le chemin d'accès de base et le nom du fichier :

Extrait de Python Tarfile.py


Une fois ce chemin créé, il sera transmis au fichier tarfile.extra. tarfile.extra ou tarfile.extall pour exécuter la fonction d'extraction :

Extrait de Python Tarfile.py

Le problème ici est l'absence de nettoyage des noms de fichiers. Un attaquant pourrait renommer un fichier de manière à inclure des caractères de traversée de chemin, tels que des barres obliques inversées (../), ce qui permettrait au fichier de sortir du répertoire où il est censé se trouver et de remplacer n'importe quel fichier. Cela pourrait finalement conduire à l'exécution de code à distance, et le moment est venu d'exploiter cette faille.

Si vous savez comment identifier cette vulnérabilité, elle peut apparaître dans d'autres contextes. Outre le traitement des fichiers tar par Python, cette vulnérabilité existe également lorsde l'extraction de fichiers zip. Vous la connaissez peut-être sous un autre nom, tel que « vulnérabilité des fichiers compressés », qui a déjà été observée dans d'autres langages que Python.

Lien vers la tâche 

Comment réduire les risques ?

Bien que cette vulnérabilité soit connue depuis plusieurs années, les responsables de la maintenance de Python considèrent toujours que la fonctionnalité d'extraction fonctionne comme prévu. Dans ce contexte, certains pourraient affirmer qu'il s'agit d'une fonctionnalité et non d'un défaut. Malheureusement, les développeurs ne peuvent pas toujours éviter d'extraire des fichiers tar ou zip provenant de sources inconnues. Dans le cadre des pratiques de développement sécurisé, il est de leur responsabilité de nettoyer les entrées non fiables afin de prévenir les vulnérabilités de type « path traversal ».

Souhaitez-vous en savoir plus sur la manière d'écrire du code sécurisé et de réduire les risques avec Python ?

Nous vous invitons à essayer notre défi Python gratuit.

Si vous souhaitez obtenir davantage de guides de programmation gratuits, veuillez consulter le Code Coach pour la sécurité afin de vous familiariser avec les pratiques de codage sécurisé.

Veuillez consulter les ressources.
Veuillez consulter les ressources.

Veuillez remplir le formulaire ci-dessous pour télécharger le rapport.

Nous souhaiterions obtenir votre autorisation afin de vous envoyer des informations concernant nos produits et/ou des sujets liés à la sécurité informatique. Nous traiterons toujours vos informations personnelles avec la plus grande confidentialité et ne les vendrons jamais à d'autres entreprises à des fins commerciales.

Soumettre
icône de réussite scw
icône d'erreur scw
Pour soumettre le formulaire, veuillez activer les cookies analytiques. Une fois terminé, vous pouvez les désactiver à nouveau si vous le souhaitez.

Récemment, un groupe de chercheurs en sécurité a annoncé avoir découvert une faille vieille de quinze ans dans la fonctionnalité d'extraction des fichiers tar de Python. Cette vulnérabilité a été signalée pour la première fois en 2007 et référencée sous le numéro CVE-2007-4559. Une note a été ajoutée dans la documentation officielle de Python, mais la faille elle-même n'a pas été corrigée.

Cette vulnérabilité pourrait affecter des milliers de projets logiciels, mais beaucoup de personnes ne sont pas conscientes de la situation ou ne savent pas comment y remédier. C'est pourquoi, chez Security Code Warriors, nousvous offrons la possibilité de simuler vous-même l'exploitation de cette vulnérabilité afin de constater ses effets et de comprendre le mécanisme de cette erreur persistante, ce qui vous permettra de mieux protéger vos applications.

Veuillez essayer la simulation de mission dès maintenant.

Vulnérabilité : parcours de chemin lors de l'extraction d'un fichier tar

Lorsque des entrées utilisateur non vérifiées sont utilisées pour construire des chemins d'accès à des fichiers, cela peut entraîner un parcours de chemin ou de répertoire, permettant ainsi à un attaquant d'obtenir des privilèges d'accès, de remplacer des fichiers, voire d'exécuter du code arbitraire.

Cette vulnérabilité est présente dans le module tarfile de Python. Un fichier tar (archive sur bande) est un fichier unique appelé archive. Il regroupe plusieurs fichiers et leurs métadonnées, généralement identifiés par l'extension .tar.gz ou .tgz. Chaque élément de l'archive peut être représenté par un objet TarInfo contenant des métadonnées telles que le nom du fichier, la date de modification, le propriétaire, etc.

Le risque réside dans la possibilité de récupérer à nouveau les archives.

Lors de l'extraction, chaque membre doit indiquer un chemin d'accès. Cet emplacement est créé en combinant le chemin d'accès de base et le nom du fichier :

Extrait de Python Tarfile.py


Une fois ce chemin créé, il sera transmis au fichier tarfile.extra. tarfile.extra ou tarfile.extall pour exécuter la fonction d'extraction :

Extrait de Python Tarfile.py

Le problème ici est l'absence de nettoyage des noms de fichiers. Un attaquant pourrait renommer un fichier de manière à inclure des caractères de traversée de chemin, tels que des barres obliques inversées (../), ce qui permettrait au fichier de sortir du répertoire où il est censé se trouver et de remplacer n'importe quel fichier. Cela pourrait finalement conduire à l'exécution de code à distance, et le moment est venu d'exploiter cette faille.

Si vous savez comment identifier cette vulnérabilité, elle peut apparaître dans d'autres contextes. Outre le traitement des fichiers tar par Python, cette vulnérabilité existe également lorsde l'extraction de fichiers zip. Vous la connaissez peut-être sous un autre nom, tel que « vulnérabilité des fichiers compressés », qui a déjà été observée dans d'autres langages que Python.

Lien vers la tâche 

Comment réduire les risques ?

Bien que cette vulnérabilité soit connue depuis plusieurs années, les responsables de la maintenance de Python considèrent toujours que la fonctionnalité d'extraction fonctionne comme prévu. Dans ce contexte, certains pourraient affirmer qu'il s'agit d'une fonctionnalité et non d'un défaut. Malheureusement, les développeurs ne peuvent pas toujours éviter d'extraire des fichiers tar ou zip provenant de sources inconnues. Dans le cadre des pratiques de développement sécurisé, il est de leur responsabilité de nettoyer les entrées non fiables afin de prévenir les vulnérabilités de type « path traversal ».

Souhaitez-vous en savoir plus sur la manière d'écrire du code sécurisé et de réduire les risques avec Python ?

Nous vous invitons à essayer notre défi Python gratuit.

Si vous souhaitez obtenir davantage de guides de programmation gratuits, veuillez consulter le Code Coach pour la sécurité afin de vous familiariser avec les pratiques de codage sécurisé.

Visionner le webinaire
Commençons.
En savoir plus

Veuillez cliquer sur le lien ci-dessous pour télécharger le PDF de cette ressource.

Secure Code Warrior peut aider votre organisation à sécuriser le code tout au long du cycle de vie du développement logiciel et à instaurer une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, directeur de la sécurité de l'information ou tout autre professionnel concerné par la sécurité, nous pouvons aider votre organisation à réduire les risques liés au code non sécurisé.

Veuillez consulter le rapport.Veuillez réserver une démonstration.
Télécharger le PDF
Veuillez consulter les ressources.
Partager sur :
marques LinkedInSocialLogo x
Souhaitez-vous en savoir davantage ?

Partager sur :
marques LinkedInSocialLogo x
Auteur
Laura Verheyde
Publié le 03 octobre 2022

Laura Verheyde est développeuse de logiciels à l'adresse Secure Code Warrior . Elle se consacre à la recherche de vulnérabilités et à la création de contenu pour Missions et Coding labs.

Partager sur :
marques LinkedInSocialLogo x

Récemment, un groupe de chercheurs en sécurité a annoncé avoir découvert une faille vieille de quinze ans dans la fonctionnalité d'extraction des fichiers tar de Python. Cette vulnérabilité a été signalée pour la première fois en 2007 et référencée sous le numéro CVE-2007-4559. Une note a été ajoutée dans la documentation officielle de Python, mais la faille elle-même n'a pas été corrigée.

Cette vulnérabilité pourrait affecter des milliers de projets logiciels, mais beaucoup de personnes ne sont pas conscientes de la situation ou ne savent pas comment y remédier. C'est pourquoi, chez Security Code Warriors, nousvous offrons la possibilité de simuler vous-même l'exploitation de cette vulnérabilité afin de constater ses effets et de comprendre le mécanisme de cette erreur persistante, ce qui vous permettra de mieux protéger vos applications.

Veuillez essayer la simulation de mission dès maintenant.

Vulnérabilité : parcours de chemin lors de l'extraction d'un fichier tar

Lorsque des entrées utilisateur non vérifiées sont utilisées pour construire des chemins d'accès à des fichiers, cela peut entraîner un parcours de chemin ou de répertoire, permettant ainsi à un attaquant d'obtenir des privilèges d'accès, de remplacer des fichiers, voire d'exécuter du code arbitraire.

Cette vulnérabilité est présente dans le module tarfile de Python. Un fichier tar (archive sur bande) est un fichier unique appelé archive. Il regroupe plusieurs fichiers et leurs métadonnées, généralement identifiés par l'extension .tar.gz ou .tgz. Chaque élément de l'archive peut être représenté par un objet TarInfo contenant des métadonnées telles que le nom du fichier, la date de modification, le propriétaire, etc.

Le risque réside dans la possibilité de récupérer à nouveau les archives.

Lors de l'extraction, chaque membre doit indiquer un chemin d'accès. Cet emplacement est créé en combinant le chemin d'accès de base et le nom du fichier :

Extrait de Python Tarfile.py


Une fois ce chemin créé, il sera transmis au fichier tarfile.extra. tarfile.extra ou tarfile.extall pour exécuter la fonction d'extraction :

Extrait de Python Tarfile.py

Le problème ici est l'absence de nettoyage des noms de fichiers. Un attaquant pourrait renommer un fichier de manière à inclure des caractères de traversée de chemin, tels que des barres obliques inversées (../), ce qui permettrait au fichier de sortir du répertoire où il est censé se trouver et de remplacer n'importe quel fichier. Cela pourrait finalement conduire à l'exécution de code à distance, et le moment est venu d'exploiter cette faille.

Si vous savez comment identifier cette vulnérabilité, elle peut apparaître dans d'autres contextes. Outre le traitement des fichiers tar par Python, cette vulnérabilité existe également lorsde l'extraction de fichiers zip. Vous la connaissez peut-être sous un autre nom, tel que « vulnérabilité des fichiers compressés », qui a déjà été observée dans d'autres langages que Python.

Lien vers la tâche 

Comment réduire les risques ?

Bien que cette vulnérabilité soit connue depuis plusieurs années, les responsables de la maintenance de Python considèrent toujours que la fonctionnalité d'extraction fonctionne comme prévu. Dans ce contexte, certains pourraient affirmer qu'il s'agit d'une fonctionnalité et non d'un défaut. Malheureusement, les développeurs ne peuvent pas toujours éviter d'extraire des fichiers tar ou zip provenant de sources inconnues. Dans le cadre des pratiques de développement sécurisé, il est de leur responsabilité de nettoyer les entrées non fiables afin de prévenir les vulnérabilités de type « path traversal ».

Souhaitez-vous en savoir plus sur la manière d'écrire du code sécurisé et de réduire les risques avec Python ?

Nous vous invitons à essayer notre défi Python gratuit.

Si vous souhaitez obtenir davantage de guides de programmation gratuits, veuillez consulter le Code Coach pour la sécurité afin de vous familiariser avec les pratiques de codage sécurisé.

Table des matières

Télécharger le PDF
Veuillez consulter les ressources.
Souhaitez-vous en savoir davantage ?

En savoir plus

Secure Code Warrior peut aider votre organisation à sécuriser le code tout au long du cycle de vie du développement logiciel et à instaurer une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, directeur de la sécurité de l'information ou tout autre professionnel concerné par la sécurité, nous pouvons aider votre organisation à réduire les risques liés au code non sécurisé.

Veuillez réserver une démonstration.Télécharger
Partager sur :
marques LinkedInSocialLogo x
Centre de ressources

Ressources pour vous aider à démarrer

Plus d'articles
Centre de ressources

Ressources pour vous aider à démarrer

Plus d'articles