CVE-2026-35525LiquidJS 是一个纯 JavaScript 的模板引擎,兼容 Shopify 和 GitHub Pages。在 10.25.3 版本之前,该组件在处理 {% include %}、{% render %} 和 {% layout %} 指令时存在安全缺陷。系统仅验证请求的路径字符串是否位于允许的根目录内,而未解析文件系统的真实路径。攻击者若能在受信任的模板目录下创建恶意符号链接,即可利用此漏洞绕过目录限制,读取服务器上根目录外的任意敏感文件,造成信息泄露风险。
该漏洞源于 LiquidJS 在路径安全验证机制上的设计缺陷。当引擎处理模板包含、渲染或布局指令时,它只检查传入的路径字符串是否以配置的 partials 或 layouts 根目录作为前缀,而没有调用系统级的 `realpath` 函数来解析符号链接后的实际物理路径。在允许上传主题、解压归档文件或挂载内容的场景下,攻击者可以在允许的目录内放置一个名为 `partials/link.liquid` 的符号链接,该链接指向 `/etc/passwd` 等系统敏感文件。当 LiquidJS 尝试打开并渲染该文件时,底层文件系统会自动跟随符号链接读取目标内容。由于检查逻辑仅作用于路径字符串,这种利用方式成功欺骗了安全检查,导致服务端任意文件读取漏洞。