CVE-2026-34726Copier是一个用于渲染项目模板的库和CLI工具。在9.14.1版本之前,其_subdirectory设置存在安全缺陷。尽管文档规定该设置用于指定模板根目录的子目录,但实现上并未正确过滤父目录遍历字符(如..)。攻击者可利用此漏洞使模板转义自身目录,在未使用--UNSAFE参数的情况下渲染父目录的文件,导致信息泄露或文件篡改。
该漏洞的核心成因在于Copier对用户输入的`_subdirectory`参数缺乏严格的路径清洗机制。在受影响的版本中,程序直接使用用户提供的路径字符串来定位模板根目录,未对其进行规范化处理以消除`..`等特殊含义的字符。这允许攻击者通过精心构造的路径序列(如`../../`)突破模板目录的边界。从攻击表面来看,CVSS向量(AV:L/AC:L/PR:N/UI:R)表明这是一个需要本地访问和用户交互的漏洞。攻击者通常通过分发包含恶意配置的模板仓库来实施攻击。当受害者执行Copier命令时,漏洞被触发,Copier错误地将父目录或系统其他目录视为模板源。这不仅可能导致敏感信息(如源代码、凭证文件)的泄露,还可能因为模板渲染机制将文件写入意外位置,从而破坏系统完整性或为后续攻击创造条件。此漏洞绕过了设计者通过`--UNSAFE`标志强制执行的安全策略。