【高危漏洞】CVE-2026-23949:jaraco.context 路径遍历漏洞分析

漏洞概述

开源软件包 jaraco.context 在其 tarball() 函数中存在 Zip Slip 类型的路径遍历漏洞(CVE-2026-23949)。该漏洞影响版本 5.2.0 至 6.1.0(不含),攻击者可通过构造恶意 tar 归档文件,使解压操作将文件写入目标系统任意路径,从而可能导致敏感信息泄露或配置文件覆盖等安全风险。

漏洞详情

  • CVE 编号:CVE-2026-23949
  • 漏洞类型:路径遍历(CWE-22)
  • CVSS 评分:8.6(HIGH)
  • 影响版本:jaraco.context 5.2.0 ≤ version < 6.1.0

影响范围

使用 jaraco.context 库中 jaraco.context.tarball() 函数处理不受信任 tar 文件的应用程序均可能受影响。此外,由于 setuptools 项目曾将该库作为 vendored 依赖(位于 setuptools/_vendor/jaraco/context.py),若使用了受影响版本的 setuptools 并调用了相关功能,也可能面临风险。

风险分析

该漏洞允许攻击者通过精心构造的 tar 文件实现路径遍历。例如,路径 dummy_dir/../../etc/passwd 在经过 strip_first_component 过滤器处理后,会变为 ../../etc/passwd,从而绕过目录限制,将文件写入系统关键位置。更严重的是,该漏洞还支持“嵌套 tarball”攻击:外层 tar 包含一个内层 tar 文件(如 dummy_dir/inner.tar.gz),而内层 tar 中又包含遍历路径(如 dummy_dir/../../config/.env),在递归解压时同样可触发路径穿越。由于攻击无需用户交互、无需认证,且可通过网络触发(AV:N),攻击面较广,主要风险为高危的信息泄露(Confidentiality Impact: HIGH)。

修复建议

  • 立即升级 jaraco.context 至 6.1.0 或更高版本,该版本已修复此路径遍历问题。
  • 若无法立即升级,应避免使用 jaraco.context.tarball() 处理来自不可信来源的 tar 文件;或在调用前对归档内所有文件路径进行严格校验,确保不包含 .. 等遍历序列。

参考链接