已发现广泛使用的 python-json-logger 库中存在一个严重漏洞,攻击者有可能利用该漏洞在受影响的系统上执行任意代码。
这个漏洞被追踪编号为 CVE-2025-27607,初始的通用漏洞评分系统(CVSS)评分为 8.8,影响该软件包的 3.2.0 版本和 3.2.1 版本,其根源在于一个缺失的依赖项问题。
安全研究员 omnigodz 在对供应链攻击进行实验研究时发现了这个漏洞。
该研究员发现,python-json-logger 软件包在其 pyproject.toml 文件中声明了一个名为 msgspec-python313-pre 的依赖项,但这个依赖项在 Python 包索引(PyPI)上并不存在,也未被任何实体注册。
“在我的研究过程中,我发现了一个影响Package Manager上发布的软件包的重大缺陷,”omnigodz 解释道,“我能够确定 PyPi 软件包 python-json-logger 使用了一个可选依赖项,而这个依赖项既不在 PyPi 存储库中,也未被任何实体注册。”
该漏洞产生的原因是,msgspec-python313-pre 依赖项已被其所有者删除,使得任何人都可以使用这个名称。这就造成了一种情况,即恶意行为者可以发布一个同名的包含有害代码的软件包。
概念验证(PoC)
当用户在 Python 3.13 环境中使用命令 pip install python-json-logger [dev] 安装 python-json-logger 及其依赖性、项时,他们会在不知不觉中下载并执行恶意软件包。
为了在不造成危害的情况下演示这个漏洞,该研究员临时发布了一个同名的非恶意软件包,然后将其删除,有效地阻止了恶意行为者利用该漏洞。该研究员保留了这个软件包名称的注册,以防止其他人恶意使用它。
“这个发布的软件包没有任何恶意内容,因为我不想违反 PyPi.org 制定的任何政策,也不想感染 python-json-logger 软件包的任何用户,” 该研究员表示。
python-json-logger 软件包极其受欢迎,根据 PyPI 的 BigQuery 数据库显示,其每月的下载量超过 4300 万次。这种广泛的使用显著放大了该漏洞可能造成的影响。
这个问题的出现是因为,尽管大约一个月前通过提交记录 1ce81a3 从项目存储库中删除了该依赖项,但在 3.2.1 版本之后,这些更改从未被推送到新版本中,使得这些版本的用户面临漏洞风险。
比利时网络安全中心发布了一则警告,称:“我们强烈建议在经过全面测试后,为具有最高优先级的易受攻击的设备安装更新。”
缓解措施
该漏洞已在 3.3.0 版本中得到修复,用户应立即升级到该版本。此外,PyPI 管理员已采取措施阻止缺失软件包的名称被使用,防止其被恶意行为者重新占用。由于这些保护措施,该漏洞的严重程度评级已从 “高” 降至 “低”。
建议使用受影响库的组织检查其依赖项,升级到已修复的版本,并监控是否存在可疑活动。如果 msgspec-python313-pre 仍是您的依赖项之一,应立即将其删除。
发表评论
您还未登录,请先登录。
登录