Vulnerability · Published Jul 9, 2026 · Assigned by GitHub_M
CVE-2026-55865Python Liquid: Infinite loop when parsing malformed `{% case %}` tags
High 7.1
In plain English
A high-severity infinite loop in liquid from jg-rp. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.5% (higher than 39% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
Python Liquid is a Python engine for the Liquid template language. Prior to 2.2.1, given a malformed {% case %} tag without an associated {% when %} or {% else %} block and no terminating {% endcase %} tag, Python Liquid hangs in an infinite loop at parse time because liquid.TokenStream.eof did not give the EOF token matching kind and value fields, allowing malicious template authors to craft templates for a denial of service attack. This issue is fixed in version 2.2.1.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| PyPI | python-liquid | 2.2.1 | GHSA-vq2f-vcc9-j8mv |
| PyPI | python-liquid | 2.2.1 | PYSEC-2026-3035 |
Affected products (as reported)
Weakness: CWE-835 · Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
References
- https://github.com/jg-rp/liquid/security/advisories/GHSA-vq2f-vcc9-j8mv x_refsource_CONFIRM
- https://github.com/jg-rp/liquid/commit/26db8931cf35e8433c1ca506fc32c3bb62f743d4 x_refsource_MISC
- https://github.com/jg-rp/liquid/releases/tag/v2.2.1 x_refsource_MISC