SCW图标
英雄背景无分隔线
博客

Comprendre le bogue de traversée de chemin dans le module tarfile de Python

Laura Verheyde
发布于 2022 年 10 月 03 日
最后更新于 2026年3月6日

Récemment, une équipe de chercheurs en sécurité ont 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 avoir un impact sur des milliers de projets logiciels, mais de nombreuses personnes ne connaissent pas la situation ni la manière de la gérer. C'est pourquoi, ici à Secure Code Warrior, nous vous donnons la possibilité de simuler vous-même l'exploitation de cette vulnérabilité pour en constater l'impact de première main et acquérir une expérience pratique des mécanismes de ce bogue persistant, afin de mieux protéger votre application !

Essayez la simulation Mission 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é existe dans Python fichier goudron module. 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 que .tar.gz ou .tgz extension. Chaque membre de l'archive peut être représenté par un Informations sur les étoiles objet, qui contient des métadonnées, telles que le nom du fichier, l'heure de modification, la propriété, etc.

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

Lors de l'extraction, chaque membre a besoin d'un chemin dans lequel écrire. Cet emplacement est créé en joignant le chemin de base au nom du fichier :

Extrait de Python Tarfile.py


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

Extrait de Python Tarfile.py

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 mûr pour l'exploitation.

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 extraction de fichiers zip. Vous le connaissez peut-être sous un autre nom, tel que vulnérabilité Zip Slip, qui s'est manifesté 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 responsables de Python considèrent que la fonctionnalité d'extraction fonctionne ce qu'il est censé faire. Dans ce cas, certains peuvent dire « 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. C'est à eux de nettoyer les entrées non fiables afin d'éviter les vulnérabilités liées à la traversée des chemins dans le cadre de pratiques de développement sécurisées.

Vous souhaitez en savoir plus sur la façon d'écrire du code sécurisé et d'atténuer les risques avec Python ?

Essayez notre Défi Python gratuit.

Si vous souhaitez obtenir plus de directives de codage gratuites, consultez Coach de code sécurisé pour vous aider à rester au fait 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 在整个软件开发周期中保障代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全负责人、开发人员、信息安全主管,还是其他任何参与安全工作的人员,我们都能协助您的组织降低不安全代码带来的风险。

预约演示
分享到:
领英品牌社交x 标志
作者
Laura Verheyde
发表于2022年10月3日

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.

分享到:
领英品牌社交x 标志

Récemment, une équipe de chercheurs en sécurité ont 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 avoir un impact sur des milliers de projets logiciels, mais de nombreuses personnes ne connaissent pas la situation ni la manière de la gérer. C'est pourquoi, ici à Secure Code Warrior, nous vous donnons la possibilité de simuler vous-même l'exploitation de cette vulnérabilité pour en constater l'impact de première main et acquérir une expérience pratique des mécanismes de ce bogue persistant, afin de mieux protéger votre application !

Essayez la simulation Mission 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é existe dans Python fichier goudron module. 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 que .tar.gz ou .tgz extension. Chaque membre de l'archive peut être représenté par un Informations sur les étoiles objet, qui contient des métadonnées, telles que le nom du fichier, l'heure de modification, la propriété, etc.

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

Lors de l'extraction, chaque membre a besoin d'un chemin dans lequel écrire. Cet emplacement est créé en joignant le chemin de base au nom du fichier :

Extrait de Python Tarfile.py


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

Extrait de Python Tarfile.py

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 mûr pour l'exploitation.

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 extraction de fichiers zip. Vous le connaissez peut-être sous un autre nom, tel que vulnérabilité Zip Slip, qui s'est manifesté 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 responsables de Python considèrent que la fonctionnalité d'extraction fonctionne ce qu'il est censé faire. Dans ce cas, certains peuvent dire « 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. C'est à eux de nettoyer les entrées non fiables afin d'éviter les vulnérabilités liées à la traversée des chemins dans le cadre de pratiques de développement sécurisées.

Vous souhaitez en savoir plus sur la façon d'écrire du code sécurisé et d'atténuer les risques avec Python ?

Essayez notre Défi Python gratuit.

Si vous souhaitez obtenir plus de directives de codage gratuites, consultez Coach de code sécurisé pour vous aider à rester au fait des pratiques de codage sécurisées.

显示资源
显示资源

请填写以下表格以下载报告

我们希望获得您的授权,以便向您发送有关我们产品和/或安全编码相关主题的信息。我们将始终以最高标准谨慎处理您的个人数据,绝不会将其出售给其他企业用于营销目的。

提交
scw 成功图标
SCW 错误图标
要提交表单,请启用「Analytics」Cookie。完成操作后,请随时将其重新禁用。

Récemment, une équipe de chercheurs en sécurité ont 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 avoir un impact sur des milliers de projets logiciels, mais de nombreuses personnes ne connaissent pas la situation ni la manière de la gérer. C'est pourquoi, ici à Secure Code Warrior, nous vous donnons la possibilité de simuler vous-même l'exploitation de cette vulnérabilité pour en constater l'impact de première main et acquérir une expérience pratique des mécanismes de ce bogue persistant, afin de mieux protéger votre application !

Essayez la simulation Mission 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é existe dans Python fichier goudron module. 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 que .tar.gz ou .tgz extension. Chaque membre de l'archive peut être représenté par un Informations sur les étoiles objet, qui contient des métadonnées, telles que le nom du fichier, l'heure de modification, la propriété, etc.

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

Lors de l'extraction, chaque membre a besoin d'un chemin dans lequel écrire. Cet emplacement est créé en joignant le chemin de base au nom du fichier :

Extrait de Python Tarfile.py


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

Extrait de Python Tarfile.py

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 mûr pour l'exploitation.

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 extraction de fichiers zip. Vous le connaissez peut-être sous un autre nom, tel que vulnérabilité Zip Slip, qui s'est manifesté 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 responsables de Python considèrent que la fonctionnalité d'extraction fonctionne ce qu'il est censé faire. Dans ce cas, certains peuvent dire « 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. C'est à eux de nettoyer les entrées non fiables afin d'éviter les vulnérabilités liées à la traversée des chemins dans le cadre de pratiques de développement sécurisées.

Vous souhaitez en savoir plus sur la façon d'écrire du code sécurisé et d'atténuer les risques avec Python ?

Essayez notre Défi Python gratuit.

Si vous souhaitez obtenir plus de directives de codage gratuites, consultez Coach de code sécurisé pour vous aider à rester au fait des pratiques de codage sécurisées.

查看网络研讨会
开始
了解更多

点击下方链接,下载此资源的PDF文件。

Secure Code Warrior 在整个软件开发周期中保障代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全负责人、开发人员、信息安全主管,还是其他任何参与安全工作的人员,我们都能协助您的组织降低不安全代码带来的风险。

显示报告预约演示
下载PDF文件
显示资源
分享到:
领英品牌社交x 标志
您想了解更多吗?

分享到:
领英品牌社交x 标志
作者
Laura Verheyde
发表于2022年10月3日

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.

分享到:
领英品牌社交x 标志

Récemment, une équipe de chercheurs en sécurité ont 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 avoir un impact sur des milliers de projets logiciels, mais de nombreuses personnes ne connaissent pas la situation ni la manière de la gérer. C'est pourquoi, ici à Secure Code Warrior, nous vous donnons la possibilité de simuler vous-même l'exploitation de cette vulnérabilité pour en constater l'impact de première main et acquérir une expérience pratique des mécanismes de ce bogue persistant, afin de mieux protéger votre application !

Essayez la simulation Mission 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é existe dans Python fichier goudron module. 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 que .tar.gz ou .tgz extension. Chaque membre de l'archive peut être représenté par un Informations sur les étoiles objet, qui contient des métadonnées, telles que le nom du fichier, l'heure de modification, la propriété, etc.

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

Lors de l'extraction, chaque membre a besoin d'un chemin dans lequel écrire. Cet emplacement est créé en joignant le chemin de base au nom du fichier :

Extrait de Python Tarfile.py


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

Extrait de Python Tarfile.py

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 mûr pour l'exploitation.

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 extraction de fichiers zip. Vous le connaissez peut-être sous un autre nom, tel que vulnérabilité Zip Slip, qui s'est manifesté 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 responsables de Python considèrent que la fonctionnalité d'extraction fonctionne ce qu'il est censé faire. Dans ce cas, certains peuvent dire « 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. C'est à eux de nettoyer les entrées non fiables afin d'éviter les vulnérabilités liées à la traversée des chemins dans le cadre de pratiques de développement sécurisées.

Vous souhaitez en savoir plus sur la façon d'écrire du code sécurisé et d'atténuer les risques avec Python ?

Essayez notre Défi Python gratuit.

Si vous souhaitez obtenir plus de directives de codage gratuites, consultez Coach de code sécurisé pour vous aider à rester au fait des pratiques de codage sécurisées.

目录

下载PDF文件
显示资源
您想了解更多吗?

了解更多

Secure Code Warrior 在整个软件开发周期中保障代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全负责人、开发人员、信息安全主管,还是其他任何参与安全工作的人员,我们都能协助您的组织降低不安全代码带来的风险。

预约演示下载
分享到:
领英品牌社交x 标志
资源中心

帮助您入门的资源

更多帖子
资源中心

帮助您入门的资源

更多帖子