PyInstaller漏洞:您的Python应用是否面临劫持风险?

阅读量97854

发布时间 : 2025-09-12 17:36:50

x
译文声明

本文是翻译文章,文章原作者 Ddos,文章来源:securityonline

原文地址:https://securityonline.info/pyinstaller-flaw-are-your-python-apps-vulnerable-to-hijacking/

译文仅供参考,具体内容表达以及含义原文为准。

PyInstaller项目已发布针对本地权限提升漏洞的修复程序,该漏洞影响使用6.0.0版本之前打包的应用。该漏洞编号为CVE-2025-59042,CVSS评分为7.0,攻击者可利用此漏洞在PyInstaller打包应用的引导过程中执行任意代码。

PyInstaller通过打包解释器和依赖项,将Python应用转换为独立可执行文件。然而,安全公告指出:“由于PyInstaller打包应用在引导过程中会向sys.path 添加特殊条目,且引导脚本会在该条目仍存在的情况下尝试加载可选的字节码解密模块,因此使用PyInstaller < 6.0.0版本构建的应用可能被非特权攻击者诱骗执行任意Python代码。”

该漏洞的成因是:如果满足特定条件,攻击者可在可执行文件旁创建伪造目录或ZIP归档,模仿PyInstaller引导程序传输PYZ归档位置的格式,导致引导脚本错误导入恶意模块。

若可执行文件以高权限运行(例如启用setuid位),则任意代码也将以高权限执行,从而实现完全本地权限提升

攻击前提条件

  1. 应用使用PyInstaller < 6.0.0版本打包(单文件夹和单文件模式均受影响)。
  2. 未启用可选字节码加密功能。
  3. 攻击者可在可执行文件同一目录创建文件/目录。
  4. 文件系统允许文件名包含?(非Windows系统)。
  5. 攻击者能够确定嵌入式PYZ归档的偏移量。

满足上述条件时,攻击者可诱骗引导过程导入恶意模块,而非预期的内部组件。

修复措施与缓解建议

PyInstaller团队分两阶段修复了该问题:

  1. PyInstaller 6.0.0:移除字节码加密支持,消除攻击向量(引导脚本不再尝试加载字节码解密模块)。
  2. PyInstaller 6.10.0:进一步强化引导过程,不再使用sys.path 传输PYZ归档位置。

对于无法立即升级的环境,公告建议:

  1. 对包含高权限可执行文件(如setuid二进制文件)的目录应用严格权限控制
  2. 确保攻击者无法在敏感可执行文件旁创建任意文件。
本文翻译自securityonline 原文链接。如若转载请注明出处。
分享到:微信
+12赞
收藏
安全客
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66