Python Liquid拒绝服务漏洞CVE-2026-55865
Python Liquid是Python 实现的 Liquid 模板引擎,完整兼容 Shopify 原版 Liquid 语法,MIT 开源,专门解析渲染 Liquid 模板文本/网页。
一、基本情况
Python Liquid是 Shopify 推出的安全模板语法,其多用于店铺装修、前台页面,Python Liquid 让 Python 程序能读写、渲染这类模板。
Python Liquid 是 Liquid 模板语言 Python 解析引擎,专为 Liquid 语法适配,纯 Python 后台项目若无 Shopify 需求,一般优先选Jinja2。

它是运行 Liquid 模板的 Python 工具,主打兼容 Shopify、安全可对外开放编辑,用于渲染店铺页面、用户自定义模板、静态文本生成。
栋科技漏洞库关注到 Python Liquid 在2.21之前版本中存在的一个拒绝服务漏洞,现已被追踪为CVE-2026-55865,CVSS 4.0评分 7.1。
二、漏洞分析
CVE-2026-55865漏洞是Python Liquid相关版本中的因解析格式错误的“{% case %}”标签时出现的无限循环漏洞,可发起拒绝服务攻击。
构造畸形 {% case %} 标签,不搭配 {% when %} / {% else %} 代码块且缺少闭合 {% endcase %} 结束标签时,解析阶段会进入死循环。
该漏洞的根源是 liquid.TokenStream.eof 未返回匹配类型与值字段的文件结束标记。可控模板编写者可以构造恶意模板来触发服务卡死。
2.2.1 版本修复此问题,修正了 liquid.TokenStream.eof 属性。
特殊 EOF 标记的类型与值现已统一,均可通过 liquid.token.TOKEN_EOF 做判断。
临时规避方案:
解析所有模板前,手动重写 liquid.TokenStream.eof 的定义。
import liquid
from liquid.token import TOKEN_EOF
liquid.stream.TokenStream.eof = liquid.Token(TOKEN_EOF, TOKEN_EOF, -1, "")
# ...
三、影响范围
Python Liquid < 2.2.1
四、修复建议
Python Liquid ≥ 2.2.1
五、参考链接
管理员已设置登录后刷新可查看