
Comprendre le bogue de traversée de chemin dans le module tarfile de Python
Récemment, une équipe de chercheurs en sécurité a annoncé la découverte d'un bogue vieux de quinze ans dans la fonctionnalité d'extraction de fichiers tar de Python. La vulnérabilité a été révélée pour la première fois en 2007 et suivie comme CVE-2007-4559. Une note a été ajoutée à la documentation officielle de Python, mais le bogue lui-même n'a pas été corrigé.
Cette vulnérabilité pourrait affecter des milliers de projets logiciels, mais de nombreuses personnes ne sont pas conscientes de la situation ni de la manière de la gérer. C'est pourquoi, ici chez Secure Code Warrior, nous vous offrons la possibilité de simuler vous-même l'exploitation de cette vulnérabilité afin d'en constater l'impact de première main et d'acquérir une expérience pratique des mécanismes de ce bogue persistant, dans le but de mieux protéger votre application.
Veuillez essayer la simulation Mission dès maintenant.
La vulnérabilité : traversée de chemins lors de l'extraction du fichier tar
La traversée de chemin ou de répertoire se produit lorsqu'une entrée utilisateur non nettoyée est utilisée pour créer un chemin de fichier, ce qui permet à un attaquant d'accéder à des fichiers et de les remplacer, et même d'exécuter du code arbitraire.
La vulnérabilité est présente dans le module Python goudron. Un fichier tar (archive sur bande) est un fichier unique, appelé archive. Il regroupe plusieurs fichiers avec leurs métadonnées et est généralement reconnu par le fait qu'il porte l'extension .tar.gz ou .tgz. Chaque membre de l'archive peut être représenté par un objet Informations sur les étoiles, qui contient des métadonnées, telles que le nom du fichier, l'heure de modification, la propriété, etc.
Le risque découle de la possibilité que les archives soient à nouveau extraites.
Lors de l'extraction, chaque membre a besoin d'un emplacement où enregistrer ses fichiers. Cet emplacement est créé en joignant le chemin de base au nom du fichier :

Une fois ce chemin créé, il est transmis au tarfile.extract ou tarfile.extractall fonctions afin de procéder à l'extraction :

Le problème ici est l'absence de nettoyage du nom de fichier. Un attaquant pourrait renommer les fichiers pour inclure des caractères de traversée de chemin, tels que point barre oblique (../), ce qui ferait sortir le fichier du répertoire dans lequel il était censé se trouver et remplacerait des fichiers arbitraires. Cela pourrait éventuellement conduire à l'exécution de code à distance, ce qui est susceptible d'être exploité.
La vulnérabilité peut également apparaître dans d'autres scénarios, si vous savez comment l'identifier. Outre la gestion des fichiers tar par Python, la vulnérabilité existe également dans l'extraction de fichiers zip. Vous la connaissez peut-être sous un autre nom, tel que la vulnérabilité Zip Slip, qui s'est manifestée dans d'autres langages que Python.
Comment pouvez-vous réduire les risques ?
Bien que la vulnérabilité soit connue depuis des années, les responsables de Python considèrent que la fonctionnalité d'extraction fonctionne comme prévu. Dans ce cas, certains peuvent affirmer « c'est une fonctionnalité, pas un bogue ». Malheureusement, les développeurs ne peuvent pas toujours éviter d'extraire des fichiers tar ou zip d'une source inconnue. Il leur incombe de nettoyer les entrées non fiables afin d'éviter les vulnérabilités liées au traversage des chemins dans le cadre de pratiques de développement sécurisées.
Souhaitez-vous en savoir plus sur la manière d'écrire du code sécurisé et d'atténuer les risques avec Python ?
Veuillez essayer notre Défi Python gratuit.
Si vous souhaitez obtenir davantage de directives de codage gratuites, veuillez consulter Coach de code sécurisé pour vous aider à rester informé des pratiques de codage sécurisées.


Récemment, une équipe de chercheurs en sécurité a annoncé la découverte d'un bogue vieux de quinze ans dans la fonctionnalité d'extraction de fichiers tar de Python. La vulnérabilité a été révélée pour la première fois en 2007 et identifiée sous le nom CVE-2007-4559. Une note a été ajoutée à la documentation officielle de Python, mais le bogue lui-même n'a pas été corrigé.

Secure Code Warrior là pour aider votre organisation à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité informatique ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Veuillez réserver une démonstration.Laura Verheyde est une développeuse de logiciels chez Secure Code Warrior qui se concentre sur la recherche de vulnérabilités et la création de contenu pour les missions et les laboratoires de codage.


Récemment, une équipe de chercheurs en sécurité a annoncé la découverte d'un bogue vieux de quinze ans dans la fonctionnalité d'extraction de fichiers tar de Python. La vulnérabilité a été révélée pour la première fois en 2007 et suivie comme CVE-2007-4559. Une note a été ajoutée à la documentation officielle de Python, mais le bogue lui-même n'a pas été corrigé.
Cette vulnérabilité pourrait affecter des milliers de projets logiciels, mais de nombreuses personnes ne sont pas conscientes de la situation ni de la manière de la gérer. C'est pourquoi, ici chez Secure Code Warrior, nous vous offrons la possibilité de simuler vous-même l'exploitation de cette vulnérabilité afin d'en constater l'impact de première main et d'acquérir une expérience pratique des mécanismes de ce bogue persistant, dans le but de mieux protéger votre application.
Veuillez essayer la simulation Mission dès maintenant.
La vulnérabilité : traversée de chemins lors de l'extraction du fichier tar
La traversée de chemin ou de répertoire se produit lorsqu'une entrée utilisateur non nettoyée est utilisée pour créer un chemin de fichier, ce qui permet à un attaquant d'accéder à des fichiers et de les remplacer, et même d'exécuter du code arbitraire.
La vulnérabilité est présente dans le module Python goudron. Un fichier tar (archive sur bande) est un fichier unique, appelé archive. Il regroupe plusieurs fichiers avec leurs métadonnées et est généralement reconnu par le fait qu'il porte l'extension .tar.gz ou .tgz. Chaque membre de l'archive peut être représenté par un objet Informations sur les étoiles, qui contient des métadonnées, telles que le nom du fichier, l'heure de modification, la propriété, etc.
Le risque découle de la possibilité que les archives soient à nouveau extraites.
Lors de l'extraction, chaque membre a besoin d'un emplacement où enregistrer ses fichiers. Cet emplacement est créé en joignant le chemin de base au nom du fichier :

Une fois ce chemin créé, il est transmis au tarfile.extract ou tarfile.extractall fonctions afin de procéder à l'extraction :

Le problème ici est l'absence de nettoyage du nom de fichier. Un attaquant pourrait renommer les fichiers pour inclure des caractères de traversée de chemin, tels que point barre oblique (../), ce qui ferait sortir le fichier du répertoire dans lequel il était censé se trouver et remplacerait des fichiers arbitraires. Cela pourrait éventuellement conduire à l'exécution de code à distance, ce qui est susceptible d'être exploité.
La vulnérabilité peut également apparaître dans d'autres scénarios, si vous savez comment l'identifier. Outre la gestion des fichiers tar par Python, la vulnérabilité existe également dans l'extraction de fichiers zip. Vous la connaissez peut-être sous un autre nom, tel que la vulnérabilité Zip Slip, qui s'est manifestée dans d'autres langages que Python.
Comment pouvez-vous réduire les risques ?
Bien que la vulnérabilité soit connue depuis des années, les responsables de Python considèrent que la fonctionnalité d'extraction fonctionne comme prévu. Dans ce cas, certains peuvent affirmer « c'est une fonctionnalité, pas un bogue ». Malheureusement, les développeurs ne peuvent pas toujours éviter d'extraire des fichiers tar ou zip d'une source inconnue. Il leur incombe de nettoyer les entrées non fiables afin d'éviter les vulnérabilités liées au traversage des chemins dans le cadre de pratiques de développement sécurisées.
Souhaitez-vous en savoir plus sur la manière d'écrire du code sécurisé et d'atténuer les risques avec Python ?
Veuillez essayer notre Défi Python gratuit.
Si vous souhaitez obtenir davantage de directives de codage gratuites, veuillez consulter Coach de code sécurisé pour vous aider à rester informé des pratiques de codage sécurisées.

Récemment, une équipe de chercheurs en sécurité a annoncé la découverte d'un bogue vieux de quinze ans dans la fonctionnalité d'extraction de fichiers tar de Python. La vulnérabilité a été révélée pour la première fois en 2007 et suivie comme CVE-2007-4559. Une note a été ajoutée à la documentation officielle de Python, mais le bogue lui-même n'a pas été corrigé.
Cette vulnérabilité pourrait affecter des milliers de projets logiciels, mais de nombreuses personnes ne sont pas conscientes de la situation ni de la manière de la gérer. C'est pourquoi, ici chez Secure Code Warrior, nous vous offrons la possibilité de simuler vous-même l'exploitation de cette vulnérabilité afin d'en constater l'impact de première main et d'acquérir une expérience pratique des mécanismes de ce bogue persistant, dans le but de mieux protéger votre application.
Veuillez essayer la simulation Mission dès maintenant.
La vulnérabilité : traversée de chemins lors de l'extraction du fichier tar
La traversée de chemin ou de répertoire se produit lorsqu'une entrée utilisateur non nettoyée est utilisée pour créer un chemin de fichier, ce qui permet à un attaquant d'accéder à des fichiers et de les remplacer, et même d'exécuter du code arbitraire.
La vulnérabilité est présente dans le module Python goudron. Un fichier tar (archive sur bande) est un fichier unique, appelé archive. Il regroupe plusieurs fichiers avec leurs métadonnées et est généralement reconnu par le fait qu'il porte l'extension .tar.gz ou .tgz. Chaque membre de l'archive peut être représenté par un objet Informations sur les étoiles, qui contient des métadonnées, telles que le nom du fichier, l'heure de modification, la propriété, etc.
Le risque découle de la possibilité que les archives soient à nouveau extraites.
Lors de l'extraction, chaque membre a besoin d'un emplacement où enregistrer ses fichiers. Cet emplacement est créé en joignant le chemin de base au nom du fichier :

Une fois ce chemin créé, il est transmis au tarfile.extract ou tarfile.extractall fonctions afin de procéder à l'extraction :

Le problème ici est l'absence de nettoyage du nom de fichier. Un attaquant pourrait renommer les fichiers pour inclure des caractères de traversée de chemin, tels que point barre oblique (../), ce qui ferait sortir le fichier du répertoire dans lequel il était censé se trouver et remplacerait des fichiers arbitraires. Cela pourrait éventuellement conduire à l'exécution de code à distance, ce qui est susceptible d'être exploité.
La vulnérabilité peut également apparaître dans d'autres scénarios, si vous savez comment l'identifier. Outre la gestion des fichiers tar par Python, la vulnérabilité existe également dans l'extraction de fichiers zip. Vous la connaissez peut-être sous un autre nom, tel que la vulnérabilité Zip Slip, qui s'est manifestée dans d'autres langages que Python.
Comment pouvez-vous réduire les risques ?
Bien que la vulnérabilité soit connue depuis des années, les responsables de Python considèrent que la fonctionnalité d'extraction fonctionne comme prévu. Dans ce cas, certains peuvent affirmer « c'est une fonctionnalité, pas un bogue ». Malheureusement, les développeurs ne peuvent pas toujours éviter d'extraire des fichiers tar ou zip d'une source inconnue. Il leur incombe de nettoyer les entrées non fiables afin d'éviter les vulnérabilités liées au traversage des chemins dans le cadre de pratiques de développement sécurisées.
Souhaitez-vous en savoir plus sur la manière d'écrire du code sécurisé et d'atténuer les risques avec Python ?
Veuillez essayer notre Défi Python gratuit.
Si vous souhaitez obtenir davantage de directives de codage gratuites, veuillez consulter Coach de code sécurisé pour vous aider à rester informé des pratiques de codage sécurisées.

Veuillez cliquer sur le lien ci-dessous et télécharger le PDF de cette ressource.
Secure Code Warrior là pour aider votre organisation à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité informatique ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Veuillez consulter le rapportVeuillez réserver une démonstration.Laura Verheyde est une développeuse de logiciels chez Secure Code Warrior qui se concentre sur la recherche de vulnérabilités et la création de contenu pour les missions et les laboratoires de codage.
Récemment, une équipe de chercheurs en sécurité a annoncé la découverte d'un bogue vieux de quinze ans dans la fonctionnalité d'extraction de fichiers tar de Python. La vulnérabilité a été révélée pour la première fois en 2007 et suivie comme CVE-2007-4559. Une note a été ajoutée à la documentation officielle de Python, mais le bogue lui-même n'a pas été corrigé.
Cette vulnérabilité pourrait affecter des milliers de projets logiciels, mais de nombreuses personnes ne sont pas conscientes de la situation ni de la manière de la gérer. C'est pourquoi, ici chez Secure Code Warrior, nous vous offrons la possibilité de simuler vous-même l'exploitation de cette vulnérabilité afin d'en constater l'impact de première main et d'acquérir une expérience pratique des mécanismes de ce bogue persistant, dans le but de mieux protéger votre application.
Veuillez essayer la simulation Mission dès maintenant.
La vulnérabilité : traversée de chemins lors de l'extraction du fichier tar
La traversée de chemin ou de répertoire se produit lorsqu'une entrée utilisateur non nettoyée est utilisée pour créer un chemin de fichier, ce qui permet à un attaquant d'accéder à des fichiers et de les remplacer, et même d'exécuter du code arbitraire.
La vulnérabilité est présente dans le module Python goudron. Un fichier tar (archive sur bande) est un fichier unique, appelé archive. Il regroupe plusieurs fichiers avec leurs métadonnées et est généralement reconnu par le fait qu'il porte l'extension .tar.gz ou .tgz. Chaque membre de l'archive peut être représenté par un objet Informations sur les étoiles, qui contient des métadonnées, telles que le nom du fichier, l'heure de modification, la propriété, etc.
Le risque découle de la possibilité que les archives soient à nouveau extraites.
Lors de l'extraction, chaque membre a besoin d'un emplacement où enregistrer ses fichiers. Cet emplacement est créé en joignant le chemin de base au nom du fichier :

Une fois ce chemin créé, il est transmis au tarfile.extract ou tarfile.extractall fonctions afin de procéder à l'extraction :

Le problème ici est l'absence de nettoyage du nom de fichier. Un attaquant pourrait renommer les fichiers pour inclure des caractères de traversée de chemin, tels que point barre oblique (../), ce qui ferait sortir le fichier du répertoire dans lequel il était censé se trouver et remplacerait des fichiers arbitraires. Cela pourrait éventuellement conduire à l'exécution de code à distance, ce qui est susceptible d'être exploité.
La vulnérabilité peut également apparaître dans d'autres scénarios, si vous savez comment l'identifier. Outre la gestion des fichiers tar par Python, la vulnérabilité existe également dans l'extraction de fichiers zip. Vous la connaissez peut-être sous un autre nom, tel que la vulnérabilité Zip Slip, qui s'est manifestée dans d'autres langages que Python.
Comment pouvez-vous réduire les risques ?
Bien que la vulnérabilité soit connue depuis des années, les responsables de Python considèrent que la fonctionnalité d'extraction fonctionne comme prévu. Dans ce cas, certains peuvent affirmer « c'est une fonctionnalité, pas un bogue ». Malheureusement, les développeurs ne peuvent pas toujours éviter d'extraire des fichiers tar ou zip d'une source inconnue. Il leur incombe de nettoyer les entrées non fiables afin d'éviter les vulnérabilités liées au traversage des chemins dans le cadre de pratiques de développement sécurisées.
Souhaitez-vous en savoir plus sur la manière d'écrire du code sécurisé et d'atténuer les risques avec Python ?
Veuillez essayer notre Défi Python gratuit.
Si vous souhaitez obtenir davantage de directives de codage gratuites, veuillez consulter Coach de code sécurisé pour vous aider à rester informé des pratiques de codage sécurisées.
Table des matières

Secure Code Warrior là pour aider votre organisation à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité informatique ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Veuillez réserver une démonstration.TéléchargerRessources pour vous aider à démarrer
Thèmes et contenus de formation sur le code sécurisé
Notre contenu de pointe évolue constamment pour s'adapter à l'évolution constante du paysage du développement de logiciels tout en tenant compte de votre rôle. Des sujets couvrant tout, de l'IA à l'injection XQuery, proposés pour une variété de postes, allant des architectes aux ingénieurs en passant par les chefs de produit et l'assurance qualité. Découvrez un aperçu de ce que notre catalogue de contenu a à offrir par sujet et par rôle.
La Chambre de commerce établit la norme en matière de sécurité à grande échelle axée sur les développeurs
La Chambre de commerce néerlandaise explique comment elle a intégré le codage sécurisé dans le développement quotidien grâce à des certifications basées sur les rôles, à l'évaluation comparative du Trust Score et à une culture de responsabilité partagée en matière de sécurité.
Modélisation des menaces avec l'IA : transformer chaque développeur en modélisateur de menaces
Vous repartirez mieux équipé pour aider les développeurs à combiner les idées et les techniques de modélisation des menaces avec les outils d'IA qu'ils utilisent déjà pour renforcer la sécurité, améliorer la collaboration et créer des logiciels plus résilients dès le départ.
Ressources pour vous aider à démarrer
Cybermon est de retour : les missions Beat the Boss sont désormais disponibles sur demande.
Cybermon 2025 : Vaincre le Boss est désormais accessible toute l'année dans SCW. Mettez en œuvre des défis de sécurité avancés liés à l'IA et au LLM afin de renforcer le développement sécurisé de l'IA à grande échelle.
Explication de la loi sur la cyber-résilience : implications pour le développement de logiciels sécurisés dès leur conception
Découvrez les exigences de la loi européenne sur la cyber-résilience (CRA), à qui elle s'applique et comment les équipes d'ingénieurs peuvent se préparer grâce à des pratiques de sécurité dès la conception, à la prévention des vulnérabilités et au renforcement des capacités des développeurs.
Facilitateur 1 : Critères de réussite clairement définis et mesurables
Enabler 1 inaugure notre série en 10 parties intitulée « Enablers of Success » en démontrant comment associer le codage sécurisé à des résultats commerciaux tels que la réduction des risques et la rapidité afin d'assurer la maturité à long terme des programmes.




%20(1).avif)
.avif)
