漏洞概述
Copier 是一个用于渲染项目模板的库和命令行工具。在 9.11.2 版本之前,Copier 认为“安全模板”(即未使用如自定义 Jinja 扩展等不安全功能的模板)是安全的,无需用户显式信任即可生成项目。然而,攻击者可通过在模板中结合目录符号链接(symlink)、设置 _preserve_symlinks: true 以及构造特定的目录结构,使生成内容写入目标路径之外的任意目录,从而覆盖用户具有写权限的任意文件,造成系统破坏或数据篡改。该漏洞已在 Copier 9.11.2 版本中修复。
漏洞详情
- CVE 编号:CVE-2026-23986
- 漏洞类型:任意文件写入(CWE-61:UNIX 符号链接问题)
- CVSS 评分:6.9(MEDIUM,CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VI:H/VA:H)
- 影响版本:Copier < 9.11.2
影响范围
所有使用 Copier 版本低于 9.11.2 的用户,尤其是在处理来自不可信来源的模板时,均可能受到此漏洞影响。只要用户运行了恶意构造的“看似安全”的模板,且系统允许创建符号链接,就可能触发任意文件写入。
风险分析
该漏洞允许恶意模板作者在用户不知情的情况下,通过符号链接机制将生成的文件写入系统任意位置(受限于用户权限)。攻击者可借此覆盖关键配置文件、脚本或数据文件,导致服务中断、权限提升或持久化后门植入。虽然攻击需要用户主动执行模板生成操作(用户交互为“被动”),但因模板被标记为“安全”,用户可能缺乏警惕,增加被利用风险。
修复建议
- 立即升级 Copier 至 9.11.2 或更高版本,该版本已修复此符号链接路径遍历问题。
- 在无法立即升级的情况下,避免使用来源不可信的模板;若必须使用,应仔细审查模板内容,特别是是否包含符号链接及
_preserve_symlinks配置。
