首页 网络安全 正文

Python Liquid拒绝服务漏洞CVE-2026-55865

摘要

栋科技漏洞库关注到 Python Liquid 在2.21之前版本中存在的一个拒绝服务漏洞,现已被追踪为CVE-2026-55865,CVSS 4.0评分 7.1。

Python Liquid是Python 实现的 Liquid 模板引擎,完整兼容 Shopify 原版 Liquid 语法,MIT 开源,专门解析渲染 Liquid 模板文本/网页。

一、基本情况

Python Liquid是 Shopify 推出的安全模板语法,其多用于店铺装修、前台页面,Python Liquid 让 Python 程序能读写、渲染这类模板。

Python Liquid 是 Liquid 模板语言 Python 解析引擎,专为 Liquid 语法适配,纯 Python 后台项目若无 Shopify 需求,一般优先选Jinja2。

Python Liquid拒绝服务漏洞CVE-2026-55865

它是运行 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

五、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接