OSV 1.4.0 · github-reviewed · 修改于 2026-06-20 04:46
发布时间
2026-06-20 04:46
GitHub 审查时间
2026-06-20 04:46
NVD 发布时间
—
源文件
advisories/github-reviewed/2026/06/GHSA-vq2f-vcc9-j8mv/GHSA-vq2f-vcc9-j8mv.json
Given a malformed {% case %} tag without associated {% when %} or {% else %} block, and no terminating {% endcase %} tag, Python Liquid hangs in an infinite loop at parse time. This allows malicious template authors to craft templates for a denial of service attack.
The issue is fixed in version 2.2.1 with the correction of the liquid.TokenStream.eof attribute. The kind and value of the special EOF token are now the same, so either can be tested against liquid.token.TOKEN_EOF.
Manually correct the definition of liquid.TokenStream.eof before parsing any templates.
import liquid
from liquid.token import TOKEN_EOF
liquid.stream.TokenStream.eof = liquid.Token(TOKEN_EOF, TOKEN_EOF, -1, "")
# ...