Description
LiquidJS is a Shopify / GitHub Pages compatible template engine in pure JavaScript. Prior to version 10.25.1, LiquidJS's `memoryLimit` security mechanism can be completely bypassed by using reverse range expressions (e.g., `(100000000..1)`), allowing an attacker to allocate unlimited memory. Combined with a string flattening operation (e.g., `replace` filter), this causes a V8 Fatal error that crashes the Node.js process, resulting in complete denial of service from a single HTTP request. Version 10.25.1 patches the issue.
Problem types
CWE-20: Improper Input Validation
CWE-400: Uncontrolled Resource Consumption
Product status
References
github.com/...quidjs/security/advisories/GHSA-9r5m-9576-7f6x
github.com/...ommit/95ddefc056a11a44d9e753fd47a39db2c241e578