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

Module tarfile de Python

Laura Barheid
Publié le 03 octobre 2022
Dernière mise à jour le 10 mars 2026

Récemment, une équipe de chercheurs en sécurité a annoncé avoir découvert un bug vieux de 15 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 suivie sous le numéro CVE-2007-4559. Une note a été ajoutée à la documentation officielle de Python, mais le bug lui-même n'a pas été corrigé.

Cette vulnérabilité pourrait affecter des milliers de projets logiciels, mais beaucoup de personnes ne sont pas familiarisées avec la situation et les mesures à prendre. C'est pourquoi Secure Code Warriorvous offre la possibilité de simuler vous-même l'exploitation de cette vulnérabilité afin d'en constater directement les effets et de découvrir concrètement le fonctionnement de ce bogue persistant. Cela vous permettra de renforcer la protection de vos applications.

Simulation de mission en cours.

Vulnérabilité : traversée de chemin lors de l'extraction de fichiers tar

Le traversal de répertoire ou le traversal de répertoire peut se produire lorsque des entrées utilisateur non validées sont utilisées pour créer des chemins d'accès aux fichiers, ce qui pourrait permettre à un attaquant d'accéder aux fichiers, de les écraser ou 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 dans un seul paquet, généralement avec l'extension tar.gz ou tgz. Chaque élément de l'archive est un objet d'informations TAR contenant des métadonnées telles que le nom du fichier, la date de modification et les droits de propriété.

Le risque réside dans la possibilité de réextraire les archives.

Lors de l'extraction, un chemin d'accès en écriture est requis pour tous les membres. Cet emplacement est créé en combinant le chemin d'accès de base et le nom du fichier.

Extrait Python Tarfile.py


Une fois ce chemin créé, il est transmis au fichier tar. fichier tar. Extraire ou tar. Toutes les fonctions d'extraction Fonction permettant d'effectuer l'extraction :

Extrait Python Tarfile.py

Le problème ici est que les noms de fichiers ne sont pas validés. Un attaquant pourrait renommer les fichiers de manière à inclure des caractères de traversée de répertoire tels que les deux points (../). Cela permettrait de déplacer les fichiers hors de leur répertoire d'origine et de remplacer n'importe quel fichier. En conséquence, du code pourrait être exécuté à distance, ce qui rendrait le système vulnérable aux attaques.

Cette vulnérabilité peut également se produire dans d'autres scénarios si l'on connaît la méthode spécifique. Outre le traitement des fichiers tar par Python, cette vulnérabilité concerneégalement l'extraction des fichiers zip. Elle est peut-être connue sous un autre nom. Par exemple, la vulnérabilité Zip Slipa également été identifiée dans d'autres langages que Python.

Lien vers la mission 

Comment pouvons-nous réduire les risques ?

Cette vulnérabilité est connue depuis plusieurs années, mais les responsables de la maintenance de Python attendent avec impatience une fonctionnalité d'extraction. Ce qui devrait être fait. Dans ce cas, certains pourraient affirmer qu'il s'agit d'une fonctionnalité et non d'un bug. 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ées, il incombe aux développeurs 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é en Python afin de réduire les risques ?

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

Si vous souhaitez obtenir davantage de directives de codage gratuites, veuillez consulter Secure Code Coach. Cela vous aidera à rester informé des meilleures pratiques en matière de codage sécurisé.

Afficher les ressources
Afficher les ressources

Aujourd'hui, Pacific Park est, comme Python, un tigre de 15 ans. Automne 2007, journal, CVE-2007-4559. Python, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant, le vivant

Souhaitez-vous en savoir davantage ?

En savoir plus

Secure Code Warrior vous assiste dans la protection de votre code tout au long du cycle de vie du développement logiciel et dans la création d'une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou professionnel de la sécurité, nous vous aidons à réduire les risques liés au code non sécurisé.

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

Laura Verheyde est développeuse de logiciels chez Secure Code Warrior, où elle se consacre à la recherche de vulnérabilités et à la création de contenu pour Mission Lab et Coding Lab.

Partager :
marques LinkedInSocialLogo x

Récemment, une équipe de chercheurs en sécurité a annoncé avoir découvert un bug vieux de 15 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 suivie sous le numéro CVE-2007-4559. Une note a été ajoutée à la documentation officielle de Python, mais le bug lui-même n'a pas été corrigé.

Cette vulnérabilité pourrait affecter des milliers de projets logiciels, mais beaucoup de personnes ne sont pas familiarisées avec la situation et les mesures à prendre. C'est pourquoi Secure Code Warriorvous offre la possibilité de simuler vous-même l'exploitation de cette vulnérabilité afin d'en constater directement les effets et de découvrir concrètement le fonctionnement de ce bogue persistant. Cela vous permettra de renforcer la protection de vos applications.

Simulation de mission en cours.

Vulnérabilité : traversée de chemin lors de l'extraction de fichiers tar

Le traversal de répertoire ou le traversal de répertoire peut se produire lorsque des entrées utilisateur non validées sont utilisées pour créer des chemins d'accès aux fichiers, ce qui pourrait permettre à un attaquant d'accéder aux fichiers, de les écraser ou 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 dans un seul paquet, généralement avec l'extension tar.gz ou tgz. Chaque élément de l'archive est un objet d'informations TAR contenant des métadonnées telles que le nom du fichier, la date de modification et les droits de propriété.

Le risque réside dans la possibilité de réextraire les archives.

Lors de l'extraction, un chemin d'accès en écriture est requis pour tous les membres. Cet emplacement est créé en combinant le chemin d'accès de base et le nom du fichier.

Extrait Python Tarfile.py


Une fois ce chemin créé, il est transmis au fichier tar. fichier tar. Extraire ou tar. Toutes les fonctions d'extraction Fonction permettant d'effectuer l'extraction :

Extrait Python Tarfile.py

Le problème ici est que les noms de fichiers ne sont pas validés. Un attaquant pourrait renommer les fichiers de manière à inclure des caractères de traversée de répertoire tels que les deux points (../). Cela permettrait de déplacer les fichiers hors de leur répertoire d'origine et de remplacer n'importe quel fichier. En conséquence, du code pourrait être exécuté à distance, ce qui rendrait le système vulnérable aux attaques.

Cette vulnérabilité peut également se produire dans d'autres scénarios si l'on connaît la méthode spécifique. Outre le traitement des fichiers tar par Python, cette vulnérabilité concerneégalement l'extraction des fichiers zip. Elle est peut-être connue sous un autre nom. Par exemple, la vulnérabilité Zip Slipa également été identifiée dans d'autres langages que Python.

Lien vers la mission 

Comment pouvons-nous réduire les risques ?

Cette vulnérabilité est connue depuis plusieurs années, mais les responsables de la maintenance de Python attendent avec impatience une fonctionnalité d'extraction. Ce qui devrait être fait. Dans ce cas, certains pourraient affirmer qu'il s'agit d'une fonctionnalité et non d'un bug. 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ées, il incombe aux développeurs 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é en Python afin de réduire les risques ?

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

Si vous souhaitez obtenir davantage de directives de codage gratuites, veuillez consulter Secure Code Coach. Cela vous aidera à rester informé des meilleures pratiques en matière de codage sécurisé.

Afficher les ressources
Afficher les ressources

Pour télécharger le rapport, veuillez remplir le formulaire ci-dessous.

Nous vous prions de bien vouloir nous autoriser à vous envoyer des informations sur nos produits et/ou sur des sujets liés au codage sécurisé. Nous traitons vos informations personnelles avec le plus grand soin et ne les vendons jamais à des tiers à des fins marketing.

Envoi
icône de réussite scw
icône d'erreur scw
Pour envoyer le formulaire, veuillez activer le cookie « Analytics ». Une fois le paramétrage terminé, vous pouvez le désactiver à nouveau.

Récemment, une équipe de chercheurs en sécurité a annoncé avoir découvert un bug vieux de 15 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 suivie sous le numéro CVE-2007-4559. Une note a été ajoutée à la documentation officielle de Python, mais le bug lui-même n'a pas été corrigé.

Cette vulnérabilité pourrait affecter des milliers de projets logiciels, mais beaucoup de personnes ne sont pas familiarisées avec la situation et les mesures à prendre. C'est pourquoi Secure Code Warriorvous offre la possibilité de simuler vous-même l'exploitation de cette vulnérabilité afin d'en constater directement les effets et de découvrir concrètement le fonctionnement de ce bogue persistant. Cela vous permettra de renforcer la protection de vos applications.

Simulation de mission en cours.

Vulnérabilité : traversée de chemin lors de l'extraction de fichiers tar

Le traversal de répertoire ou le traversal de répertoire peut se produire lorsque des entrées utilisateur non validées sont utilisées pour créer des chemins d'accès aux fichiers, ce qui pourrait permettre à un attaquant d'accéder aux fichiers, de les écraser ou 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 dans un seul paquet, généralement avec l'extension tar.gz ou tgz. Chaque élément de l'archive est un objet d'informations TAR contenant des métadonnées telles que le nom du fichier, la date de modification et les droits de propriété.

Le risque réside dans la possibilité de réextraire les archives.

Lors de l'extraction, un chemin d'accès en écriture est requis pour tous les membres. Cet emplacement est créé en combinant le chemin d'accès de base et le nom du fichier.

Extrait Python Tarfile.py


Une fois ce chemin créé, il est transmis au fichier tar. fichier tar. Extraire ou tar. Toutes les fonctions d'extraction Fonction permettant d'effectuer l'extraction :

Extrait Python Tarfile.py

Le problème ici est que les noms de fichiers ne sont pas validés. Un attaquant pourrait renommer les fichiers de manière à inclure des caractères de traversée de répertoire tels que les deux points (../). Cela permettrait de déplacer les fichiers hors de leur répertoire d'origine et de remplacer n'importe quel fichier. En conséquence, du code pourrait être exécuté à distance, ce qui rendrait le système vulnérable aux attaques.

Cette vulnérabilité peut également se produire dans d'autres scénarios si l'on connaît la méthode spécifique. Outre le traitement des fichiers tar par Python, cette vulnérabilité concerneégalement l'extraction des fichiers zip. Elle est peut-être connue sous un autre nom. Par exemple, la vulnérabilité Zip Slipa également été identifiée dans d'autres langages que Python.

Lien vers la mission 

Comment pouvons-nous réduire les risques ?

Cette vulnérabilité est connue depuis plusieurs années, mais les responsables de la maintenance de Python attendent avec impatience une fonctionnalité d'extraction. Ce qui devrait être fait. Dans ce cas, certains pourraient affirmer qu'il s'agit d'une fonctionnalité et non d'un bug. 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ées, il incombe aux développeurs 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é en Python afin de réduire les risques ?

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

Si vous souhaitez obtenir davantage de directives de codage gratuites, veuillez consulter Secure Code Coach. Cela vous aidera à rester informé des meilleures pratiques en matière de codage sécurisé.

Veuillez consulter le séminaire en ligne.
Commençons
En savoir plus

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

Secure Code Warrior vous assiste dans la protection de votre code tout au long du cycle de vie du développement logiciel et dans la création d'une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou professionnel de la sécurité, nous vous aidons à réduire les risques liés au code non sécurisé.

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

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

Laura Verheyde est développeuse de logiciels chez Secure Code Warrior, où elle se consacre à la recherche de vulnérabilités et à la création de contenu pour Mission Lab et Coding Lab.

Partager :
marques LinkedInSocialLogo x

Récemment, une équipe de chercheurs en sécurité a annoncé avoir découvert un bug vieux de 15 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 suivie sous le numéro CVE-2007-4559. Une note a été ajoutée à la documentation officielle de Python, mais le bug lui-même n'a pas été corrigé.

Cette vulnérabilité pourrait affecter des milliers de projets logiciels, mais beaucoup de personnes ne sont pas familiarisées avec la situation et les mesures à prendre. C'est pourquoi Secure Code Warriorvous offre la possibilité de simuler vous-même l'exploitation de cette vulnérabilité afin d'en constater directement les effets et de découvrir concrètement le fonctionnement de ce bogue persistant. Cela vous permettra de renforcer la protection de vos applications.

Simulation de mission en cours.

Vulnérabilité : traversée de chemin lors de l'extraction de fichiers tar

Le traversal de répertoire ou le traversal de répertoire peut se produire lorsque des entrées utilisateur non validées sont utilisées pour créer des chemins d'accès aux fichiers, ce qui pourrait permettre à un attaquant d'accéder aux fichiers, de les écraser ou 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 dans un seul paquet, généralement avec l'extension tar.gz ou tgz. Chaque élément de l'archive est un objet d'informations TAR contenant des métadonnées telles que le nom du fichier, la date de modification et les droits de propriété.

Le risque réside dans la possibilité de réextraire les archives.

Lors de l'extraction, un chemin d'accès en écriture est requis pour tous les membres. Cet emplacement est créé en combinant le chemin d'accès de base et le nom du fichier.

Extrait Python Tarfile.py


Une fois ce chemin créé, il est transmis au fichier tar. fichier tar. Extraire ou tar. Toutes les fonctions d'extraction Fonction permettant d'effectuer l'extraction :

Extrait Python Tarfile.py

Le problème ici est que les noms de fichiers ne sont pas validés. Un attaquant pourrait renommer les fichiers de manière à inclure des caractères de traversée de répertoire tels que les deux points (../). Cela permettrait de déplacer les fichiers hors de leur répertoire d'origine et de remplacer n'importe quel fichier. En conséquence, du code pourrait être exécuté à distance, ce qui rendrait le système vulnérable aux attaques.

Cette vulnérabilité peut également se produire dans d'autres scénarios si l'on connaît la méthode spécifique. Outre le traitement des fichiers tar par Python, cette vulnérabilité concerneégalement l'extraction des fichiers zip. Elle est peut-être connue sous un autre nom. Par exemple, la vulnérabilité Zip Slipa également été identifiée dans d'autres langages que Python.

Lien vers la mission 

Comment pouvons-nous réduire les risques ?

Cette vulnérabilité est connue depuis plusieurs années, mais les responsables de la maintenance de Python attendent avec impatience une fonctionnalité d'extraction. Ce qui devrait être fait. Dans ce cas, certains pourraient affirmer qu'il s'agit d'une fonctionnalité et non d'un bug. 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ées, il incombe aux développeurs 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é en Python afin de réduire les risques ?

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

Si vous souhaitez obtenir davantage de directives de codage gratuites, veuillez consulter Secure Code Coach. Cela vous aidera à rester informé des meilleures pratiques en matière de codage sécurisé.

Table des matières

Télécharger le PDF
Afficher les ressources
Souhaitez-vous en savoir davantage ?

En savoir plus

Secure Code Warrior vous assiste dans la protection de votre code tout au long du cycle de vie du développement logiciel et dans la création d'une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou professionnel de la sécurité, nous vous aidons à réduire les risques liés au code non sécurisé.

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

Ressources pour débuter

Autres publications
Centre de ressources

Ressources pour débuter

Autres publications