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

理解Python tar文件模块中的路径遍历错误

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

近日,一支安全研究团队宣布发现Python中一个存在十五年的tar文件提取功能漏洞。该漏洞最早于2007年被披露,编号为CVE-2007-4559。官方Python文档中虽添加了相关说明,但漏洞本身始终未被修复。

该漏洞可能影响数千个软件项目,但许多人对此情况及应对方式并不熟悉。因此,在 Secure Code Warrior为您提供亲身体验该漏洞利用过程的机会,让您直观感受其影响,并通过实践掌握这一顽固缺陷的运作机制,从而更好地保护您的应用程序!

立即体验模拟任务

漏洞:tar文件提取过程中的路径遍历

路径遍历漏洞发生于使用未经安全处理的用户输入构建文件路径时,这将使攻击者能够访问文件并覆盖其内容,甚至执行任意代码。

该漏洞存在于Python的tar模块中。 tar文件(磁带文件)是一种名为"档案"的特殊文件。它将多个文件及其元数据整合在一起,通常以.tar.gz或 .tgz扩展名标识。每个文件成员可由TAR信息对象表示,该对象包含文件名、修改时间、所有权等元数据。

风险源于文件能够被重新提取的能力。

提取时,每个成员都需要一个写入路径。该位置通过将基础路径与文件名组合生成:

Python片段 Tarfile.py


一旦创建了此路径,就会进入 tar.extract文件 o archivo tar.extractall 功能进行解压:

Python片段 Tarfile.py

此处的问题在于文件名未进行消毒处理。 攻击者可能通过在文件名中植入反向路径字符(如双点双点斜杠../)来篡改文件名,导致文件脱离目标目录并覆盖任意文件。长期来看,这可能引发远程代码执行漏洞,该漏洞已具备可利用条件。

漏洞在其他场景中同样存在,只要懂得如何识别。除了Python处理tar文件时的漏洞外,解压zip文件时也存在安全隐患。您可能更熟悉其别称——zip slip漏洞,这种漏洞不仅出现在Python中,其他编程语言也曾遭遇过!

使命之纽带 

如何降低风险?

尽管该漏洞已存在多年,Python维护者认为提取功能正在按预期运行。在此情况下,有人可能会说"这是功能而非错误"。 遗憾的是,开发者并非总能避免从未知来源提取tar或zip文件。作为安全开发实践的一部分,他们必须对不可信信息进行消毒处理,以防止漏洞从路径中逸出。

您想了解更多关于如何编写安全代码以及如何使用Python降低风险的信息吗?

免费体验我们的Python挑战赛

若您希望获取更多免费编码指南,请访问安全代码训练师,助您掌握安全编码实践。

查看资源
查看资源

近日,一支安全研究团队宣布发现Python中一个存在十五年的tar文件提取功能漏洞。该漏洞最早于2007年被发现,编号为CVE-2007-4559。虽然官方文档中添加了相关说明,但漏洞本身并未得到修复。

感兴趣了解更多吗?

了解更多

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。

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

Laura Verheyde 是Secure Code Warrior 的一名软件开发人员,主要负责研究漏洞并为Missions 和编码实验室创建内容。

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

近日,一支安全研究团队宣布发现Python中一个存在十五年的tar文件提取功能漏洞。该漏洞最早于2007年被披露,编号为CVE-2007-4559。官方Python文档中虽添加了相关说明,但漏洞本身始终未被修复。

该漏洞可能影响数千个软件项目,但许多人对此情况及应对方式并不熟悉。因此,在 Secure Code Warrior为您提供亲身体验该漏洞利用过程的机会,让您直观感受其影响,并通过实践掌握这一顽固缺陷的运作机制,从而更好地保护您的应用程序!

立即体验模拟任务

漏洞:tar文件提取过程中的路径遍历

路径遍历漏洞发生于使用未经安全处理的用户输入构建文件路径时,这将使攻击者能够访问文件并覆盖其内容,甚至执行任意代码。

该漏洞存在于Python的tar模块中。 tar文件(磁带文件)是一种名为"档案"的特殊文件。它将多个文件及其元数据整合在一起,通常以.tar.gz或 .tgz扩展名标识。每个文件成员可由TAR信息对象表示,该对象包含文件名、修改时间、所有权等元数据。

风险源于文件能够被重新提取的能力。

提取时,每个成员都需要一个写入路径。该位置通过将基础路径与文件名组合生成:

Python片段 Tarfile.py


一旦创建了此路径,就会进入 tar.extract文件 o archivo tar.extractall 功能进行解压:

Python片段 Tarfile.py

此处的问题在于文件名未进行消毒处理。 攻击者可能通过在文件名中植入反向路径字符(如双点双点斜杠../)来篡改文件名,导致文件脱离目标目录并覆盖任意文件。长期来看,这可能引发远程代码执行漏洞,该漏洞已具备可利用条件。

漏洞在其他场景中同样存在,只要懂得如何识别。除了Python处理tar文件时的漏洞外,解压zip文件时也存在安全隐患。您可能更熟悉其别称——zip slip漏洞,这种漏洞不仅出现在Python中,其他编程语言也曾遭遇过!

使命之纽带 

如何降低风险?

尽管该漏洞已存在多年,Python维护者认为提取功能正在按预期运行。在此情况下,有人可能会说"这是功能而非错误"。 遗憾的是,开发者并非总能避免从未知来源提取tar或zip文件。作为安全开发实践的一部分,他们必须对不可信信息进行消毒处理,以防止漏洞从路径中逸出。

您想了解更多关于如何编写安全代码以及如何使用Python降低风险的信息吗?

免费体验我们的Python挑战赛

若您希望获取更多免费编码指南,请访问安全代码训练师,助您掌握安全编码实践。

查看资源
查看资源

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

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

发送
scw 成功图标
SCW 错误图标
要提交表单,请启用「分析」cookie。完成后请随时将其重新禁用。

近日,一支安全研究团队宣布发现Python中一个存在十五年的tar文件提取功能漏洞。该漏洞最早于2007年被披露,编号为CVE-2007-4559。官方Python文档中虽添加了相关说明,但漏洞本身始终未被修复。

该漏洞可能影响数千个软件项目,但许多人对此情况及应对方式并不熟悉。因此,在 Secure Code Warrior为您提供亲身体验该漏洞利用过程的机会,让您直观感受其影响,并通过实践掌握这一顽固缺陷的运作机制,从而更好地保护您的应用程序!

立即体验模拟任务

漏洞:tar文件提取过程中的路径遍历

路径遍历漏洞发生于使用未经安全处理的用户输入构建文件路径时,这将使攻击者能够访问文件并覆盖其内容,甚至执行任意代码。

该漏洞存在于Python的tar模块中。 tar文件(磁带文件)是一种名为"档案"的特殊文件。它将多个文件及其元数据整合在一起,通常以.tar.gz或 .tgz扩展名标识。每个文件成员可由TAR信息对象表示,该对象包含文件名、修改时间、所有权等元数据。

风险源于文件能够被重新提取的能力。

提取时,每个成员都需要一个写入路径。该位置通过将基础路径与文件名组合生成:

Python片段 Tarfile.py


一旦创建了此路径,就会进入 tar.extract文件 o archivo tar.extractall 功能进行解压:

Python片段 Tarfile.py

此处的问题在于文件名未进行消毒处理。 攻击者可能通过在文件名中植入反向路径字符(如双点双点斜杠../)来篡改文件名,导致文件脱离目标目录并覆盖任意文件。长期来看,这可能引发远程代码执行漏洞,该漏洞已具备可利用条件。

漏洞在其他场景中同样存在,只要懂得如何识别。除了Python处理tar文件时的漏洞外,解压zip文件时也存在安全隐患。您可能更熟悉其别称——zip slip漏洞,这种漏洞不仅出现在Python中,其他编程语言也曾遭遇过!

使命之纽带 

如何降低风险?

尽管该漏洞已存在多年,Python维护者认为提取功能正在按预期运行。在此情况下,有人可能会说"这是功能而非错误"。 遗憾的是,开发者并非总能避免从未知来源提取tar或zip文件。作为安全开发实践的一部分,他们必须对不可信信息进行消毒处理,以防止漏洞从路径中逸出。

您想了解更多关于如何编写安全代码以及如何使用Python降低风险的信息吗?

免费体验我们的Python挑战赛

若您希望获取更多免费编码指南,请访问安全代码训练师,助您掌握安全编码实践。

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

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

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。

查看报告预约演示
查看资源
分享到:
领英品牌社交x 标志
感兴趣了解更多吗?

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

Laura Verheyde 是Secure Code Warrior 的一名软件开发人员,主要负责研究漏洞并为Missions 和编码实验室创建内容。

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

近日,一支安全研究团队宣布发现Python中一个存在十五年的tar文件提取功能漏洞。该漏洞最早于2007年被披露,编号为CVE-2007-4559。官方Python文档中虽添加了相关说明,但漏洞本身始终未被修复。

该漏洞可能影响数千个软件项目,但许多人对此情况及应对方式并不熟悉。因此,在 Secure Code Warrior为您提供亲身体验该漏洞利用过程的机会,让您直观感受其影响,并通过实践掌握这一顽固缺陷的运作机制,从而更好地保护您的应用程序!

立即体验模拟任务

漏洞:tar文件提取过程中的路径遍历

路径遍历漏洞发生于使用未经安全处理的用户输入构建文件路径时,这将使攻击者能够访问文件并覆盖其内容,甚至执行任意代码。

该漏洞存在于Python的tar模块中。 tar文件(磁带文件)是一种名为"档案"的特殊文件。它将多个文件及其元数据整合在一起,通常以.tar.gz或 .tgz扩展名标识。每个文件成员可由TAR信息对象表示,该对象包含文件名、修改时间、所有权等元数据。

风险源于文件能够被重新提取的能力。

提取时,每个成员都需要一个写入路径。该位置通过将基础路径与文件名组合生成:

Python片段 Tarfile.py


一旦创建了此路径,就会进入 tar.extract文件 o archivo tar.extractall 功能进行解压:

Python片段 Tarfile.py

此处的问题在于文件名未进行消毒处理。 攻击者可能通过在文件名中植入反向路径字符(如双点双点斜杠../)来篡改文件名,导致文件脱离目标目录并覆盖任意文件。长期来看,这可能引发远程代码执行漏洞,该漏洞已具备可利用条件。

漏洞在其他场景中同样存在,只要懂得如何识别。除了Python处理tar文件时的漏洞外,解压zip文件时也存在安全隐患。您可能更熟悉其别称——zip slip漏洞,这种漏洞不仅出现在Python中,其他编程语言也曾遭遇过!

使命之纽带 

如何降低风险?

尽管该漏洞已存在多年,Python维护者认为提取功能正在按预期运行。在此情况下,有人可能会说"这是功能而非错误"。 遗憾的是,开发者并非总能避免从未知来源提取tar或zip文件。作为安全开发实践的一部分,他们必须对不可信信息进行消毒处理,以防止漏洞从路径中逸出。

您想了解更多关于如何编写安全代码以及如何使用Python降低风险的信息吗?

免费体验我们的Python挑战赛

若您希望获取更多免费编码指南,请访问安全代码训练师,助您掌握安全编码实践。

目录

下载PDF
查看资源
感兴趣了解更多吗?

了解更多

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。

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

入门资源

更多出版物
资源中心

入门资源

更多出版物