Vulnerability Details CVE-2026-33287
LiquidJS is a Shopify / GitHub Pages compatible template engine in pure JavaScript. Prior to version 10.25.1, the `replace_first` filter in LiquidJS uses JavaScript's `String.prototype.replace()` which interprets `$&` as a back reference to the matched substring. The filter only charges `memoryLimit` for the input string length, not the amplified output. An attacker can achieve exponential memory amplification (up to 625,000:1) while staying within the `memoryLimit` budget, leading to denial of service. Version 10.25.1 patches the issue.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.0
EPSS Ranking 13.6%
CVSS Severity
CVSS v3 Score 7.5
Products affected by CVE-2026-33287
-
cpe:2.3:a:liquidjs:liquidjs:1.2.0
-
cpe:2.3:a:liquidjs:liquidjs:1.3.3
-
cpe:2.3:a:liquidjs:liquidjs:1.4.1
-
cpe:2.3:a:liquidjs:liquidjs:1.4.2
-
cpe:2.3:a:liquidjs:liquidjs:1.4.3
-
cpe:2.3:a:liquidjs:liquidjs:1.5.0
-
cpe:2.3:a:liquidjs:liquidjs:1.5.1
-
cpe:2.3:a:liquidjs:liquidjs:1.5.2
-
cpe:2.3:a:liquidjs:liquidjs:1.5.3
-
cpe:2.3:a:liquidjs:liquidjs:1.5.4
-
cpe:2.3:a:liquidjs:liquidjs:1.6.0
-
cpe:2.3:a:liquidjs:liquidjs:1.6.1
-
cpe:2.3:a:liquidjs:liquidjs:1.6.2
-
cpe:2.3:a:liquidjs:liquidjs:1.7.0
-
cpe:2.3:a:liquidjs:liquidjs:1.7.1
-
cpe:2.3:a:liquidjs:liquidjs:1.7.2
-
cpe:2.3:a:liquidjs:liquidjs:1.7.3
-
cpe:2.3:a:liquidjs:liquidjs:1.7.4
-
cpe:2.3:a:liquidjs:liquidjs:1.7.5
-
cpe:2.3:a:liquidjs:liquidjs:1.7.6
-
cpe:2.3:a:liquidjs:liquidjs:1.7.7
-
cpe:2.3:a:liquidjs:liquidjs:1.7.8
-
cpe:2.3:a:liquidjs:liquidjs:1.7.9
-
cpe:2.3:a:liquidjs:liquidjs:1.8.0
-
cpe:2.3:a:liquidjs:liquidjs:1.9.0
-
cpe:2.3:a:liquidjs:liquidjs:1.9.1
-
cpe:2.3:a:liquidjs:liquidjs:1.9.2
-
cpe:2.3:a:liquidjs:liquidjs:1.9.3
-
cpe:2.3:a:liquidjs:liquidjs:1.9.4
-
cpe:2.3:a:liquidjs:liquidjs:1.9.5
-
cpe:2.3:a:liquidjs:liquidjs:1.9.6
-
cpe:2.3:a:liquidjs:liquidjs:1.9.7
-
cpe:2.3:a:liquidjs:liquidjs:10.0.0
-
cpe:2.3:a:liquidjs:liquidjs:10.1.0
-
cpe:2.3:a:liquidjs:liquidjs:10.10.0
-
cpe:2.3:a:liquidjs:liquidjs:10.10.1
-
cpe:2.3:a:liquidjs:liquidjs:10.10.2
-
cpe:2.3:a:liquidjs:liquidjs:10.11.0
-
cpe:2.3:a:liquidjs:liquidjs:10.11.1
-
cpe:2.3:a:liquidjs:liquidjs:10.12.0
-
cpe:2.3:a:liquidjs:liquidjs:10.13.0
-
cpe:2.3:a:liquidjs:liquidjs:10.13.1
-
cpe:2.3:a:liquidjs:liquidjs:10.14.0
-
cpe:2.3:a:liquidjs:liquidjs:10.15.0
-
cpe:2.3:a:liquidjs:liquidjs:10.16.0
-
cpe:2.3:a:liquidjs:liquidjs:10.16.1
-
cpe:2.3:a:liquidjs:liquidjs:10.16.2
-
cpe:2.3:a:liquidjs:liquidjs:10.16.3
-
cpe:2.3:a:liquidjs:liquidjs:10.16.4
-
cpe:2.3:a:liquidjs:liquidjs:10.16.5
-
cpe:2.3:a:liquidjs:liquidjs:10.16.6
-
cpe:2.3:a:liquidjs:liquidjs:10.16.7
-
cpe:2.3:a:liquidjs:liquidjs:10.17.0
-
cpe:2.3:a:liquidjs:liquidjs:10.18.0
-
cpe:2.3:a:liquidjs:liquidjs:10.19.0
-
cpe:2.3:a:liquidjs:liquidjs:10.19.1
-
cpe:2.3:a:liquidjs:liquidjs:10.2.0
-
cpe:2.3:a:liquidjs:liquidjs:10.20.0
-
cpe:2.3:a:liquidjs:liquidjs:10.20.1
-
cpe:2.3:a:liquidjs:liquidjs:10.20.2
-
cpe:2.3:a:liquidjs:liquidjs:10.20.3
-
cpe:2.3:a:liquidjs:liquidjs:10.21.0
-
cpe:2.3:a:liquidjs:liquidjs:10.21.1
-
cpe:2.3:a:liquidjs:liquidjs:10.22.0
-
cpe:2.3:a:liquidjs:liquidjs:10.23.0
-
cpe:2.3:a:liquidjs:liquidjs:10.24.0
-
cpe:2.3:a:liquidjs:liquidjs:10.25.0
-
cpe:2.3:a:liquidjs:liquidjs:10.3.0
-
cpe:2.3:a:liquidjs:liquidjs:10.3.1
-
cpe:2.3:a:liquidjs:liquidjs:10.3.2
-
cpe:2.3:a:liquidjs:liquidjs:10.3.3
-
cpe:2.3:a:liquidjs:liquidjs:10.4.0
-
cpe:2.3:a:liquidjs:liquidjs:10.5.0
-
cpe:2.3:a:liquidjs:liquidjs:10.6.0
-
cpe:2.3:a:liquidjs:liquidjs:10.6.1
-
cpe:2.3:a:liquidjs:liquidjs:10.6.2
-
cpe:2.3:a:liquidjs:liquidjs:10.7.0
-
cpe:2.3:a:liquidjs:liquidjs:10.7.1
-
cpe:2.3:a:liquidjs:liquidjs:10.8.0
-
cpe:2.3:a:liquidjs:liquidjs:10.8.1
-
cpe:2.3:a:liquidjs:liquidjs:10.8.2
-
cpe:2.3:a:liquidjs:liquidjs:10.8.3
-
cpe:2.3:a:liquidjs:liquidjs:10.8.4
-
cpe:2.3:a:liquidjs:liquidjs:10.9.0
-
cpe:2.3:a:liquidjs:liquidjs:10.9.1
-
cpe:2.3:a:liquidjs:liquidjs:10.9.2
-
cpe:2.3:a:liquidjs:liquidjs:10.9.3
-
cpe:2.3:a:liquidjs:liquidjs:10.9.4
-
cpe:2.3:a:liquidjs:liquidjs:2.0.0
-
cpe:2.3:a:liquidjs:liquidjs:2.0.1
-
cpe:2.3:a:liquidjs:liquidjs:2.0.2
-
cpe:2.3:a:liquidjs:liquidjs:2.0.3
-
cpe:2.3:a:liquidjs:liquidjs:2.1.0
-
cpe:2.3:a:liquidjs:liquidjs:2.1.1
-
cpe:2.3:a:liquidjs:liquidjs:2.1.2
-
cpe:2.3:a:liquidjs:liquidjs:2.1.3
-
cpe:2.3:a:liquidjs:liquidjs:2.1.4
-
cpe:2.3:a:liquidjs:liquidjs:2.2.0
-
cpe:2.3:a:liquidjs:liquidjs:2.2.1
-
cpe:2.3:a:liquidjs:liquidjs:3.0.0
-
cpe:2.3:a:liquidjs:liquidjs:3.1.0
-
cpe:2.3:a:liquidjs:liquidjs:3.1.1
-
cpe:2.3:a:liquidjs:liquidjs:3.1.2
-
cpe:2.3:a:liquidjs:liquidjs:3.1.3
-
cpe:2.3:a:liquidjs:liquidjs:4.0.0
-
cpe:2.3:a:liquidjs:liquidjs:5.0.0
-
cpe:2.3:a:liquidjs:liquidjs:5.0.1
-
cpe:2.3:a:liquidjs:liquidjs:5.0.2
-
cpe:2.3:a:liquidjs:liquidjs:5.1.0
-
cpe:2.3:a:liquidjs:liquidjs:5.1.1
-
cpe:2.3:a:liquidjs:liquidjs:5.2.0
-
cpe:2.3:a:liquidjs:liquidjs:5.3.0-0
-
cpe:2.3:a:liquidjs:liquidjs:6.0.0
-
cpe:2.3:a:liquidjs:liquidjs:6.0.1
-
cpe:2.3:a:liquidjs:liquidjs:6.1.0
-
cpe:2.3:a:liquidjs:liquidjs:6.1.1
-
cpe:2.3:a:liquidjs:liquidjs:6.2.0
-
cpe:2.3:a:liquidjs:liquidjs:6.2.1
-
cpe:2.3:a:liquidjs:liquidjs:6.3.0
-
cpe:2.3:a:liquidjs:liquidjs:6.3.1
-
cpe:2.3:a:liquidjs:liquidjs:6.4.0
-
cpe:2.3:a:liquidjs:liquidjs:6.4.1
-
cpe:2.3:a:liquidjs:liquidjs:6.4.2
-
cpe:2.3:a:liquidjs:liquidjs:6.4.3
-
cpe:2.3:a:liquidjs:liquidjs:7.0.0
-
cpe:2.3:a:liquidjs:liquidjs:7.0.1
-
cpe:2.3:a:liquidjs:liquidjs:7.0.2
-
cpe:2.3:a:liquidjs:liquidjs:7.1.0
-
cpe:2.3:a:liquidjs:liquidjs:7.2.0
-
cpe:2.3:a:liquidjs:liquidjs:7.2.1
-
cpe:2.3:a:liquidjs:liquidjs:7.2.2
-
cpe:2.3:a:liquidjs:liquidjs:7.3.0
-
cpe:2.3:a:liquidjs:liquidjs:7.3.1
-
cpe:2.3:a:liquidjs:liquidjs:7.4.0
-
cpe:2.3:a:liquidjs:liquidjs:7.5.0
-
cpe:2.3:a:liquidjs:liquidjs:7.5.1
-
cpe:2.3:a:liquidjs:liquidjs:8.0.0
-
cpe:2.3:a:liquidjs:liquidjs:8.0.1
-
cpe:2.3:a:liquidjs:liquidjs:8.0.2
-
cpe:2.3:a:liquidjs:liquidjs:8.0.3
-
cpe:2.3:a:liquidjs:liquidjs:8.1.0
-
cpe:2.3:a:liquidjs:liquidjs:8.2.0
-
cpe:2.3:a:liquidjs:liquidjs:8.2.1
-
cpe:2.3:a:liquidjs:liquidjs:8.2.2
-
cpe:2.3:a:liquidjs:liquidjs:8.2.3
-
cpe:2.3:a:liquidjs:liquidjs:8.2.4
-
cpe:2.3:a:liquidjs:liquidjs:8.3.0
-
cpe:2.3:a:liquidjs:liquidjs:8.4.0
-
cpe:2.3:a:liquidjs:liquidjs:8.4.1
-
cpe:2.3:a:liquidjs:liquidjs:8.5.0
-
cpe:2.3:a:liquidjs:liquidjs:8.5.1
-
cpe:2.3:a:liquidjs:liquidjs:8.5.2
-
cpe:2.3:a:liquidjs:liquidjs:8.5.3
-
cpe:2.3:a:liquidjs:liquidjs:9.0.0
-
cpe:2.3:a:liquidjs:liquidjs:9.0.1
-
cpe:2.3:a:liquidjs:liquidjs:9.1.0
-
cpe:2.3:a:liquidjs:liquidjs:9.1.1
-
cpe:2.3:a:liquidjs:liquidjs:9.10.0
-
cpe:2.3:a:liquidjs:liquidjs:9.11.0
-
cpe:2.3:a:liquidjs:liquidjs:9.11.1
-
cpe:2.3:a:liquidjs:liquidjs:9.11.10
-
cpe:2.3:a:liquidjs:liquidjs:9.11.11
-
cpe:2.3:a:liquidjs:liquidjs:9.11.2
-
cpe:2.3:a:liquidjs:liquidjs:9.11.3
-
cpe:2.3:a:liquidjs:liquidjs:9.11.4
-
cpe:2.3:a:liquidjs:liquidjs:9.11.5
-
cpe:2.3:a:liquidjs:liquidjs:9.11.6
-
cpe:2.3:a:liquidjs:liquidjs:9.11.7
-
cpe:2.3:a:liquidjs:liquidjs:9.11.8
-
cpe:2.3:a:liquidjs:liquidjs:9.11.9
-
cpe:2.3:a:liquidjs:liquidjs:9.12.0
-
cpe:2.3:a:liquidjs:liquidjs:9.13.0
-
cpe:2.3:a:liquidjs:liquidjs:9.14.0
-
cpe:2.3:a:liquidjs:liquidjs:9.14.1
-
cpe:2.3:a:liquidjs:liquidjs:9.15.0
-
cpe:2.3:a:liquidjs:liquidjs:9.15.1
-
cpe:2.3:a:liquidjs:liquidjs:9.16.0
-
cpe:2.3:a:liquidjs:liquidjs:9.16.1
-
cpe:2.3:a:liquidjs:liquidjs:9.17.0
-
cpe:2.3:a:liquidjs:liquidjs:9.18.0
-
cpe:2.3:a:liquidjs:liquidjs:9.19.0
-
cpe:2.3:a:liquidjs:liquidjs:9.2.0
-
cpe:2.3:a:liquidjs:liquidjs:9.20.0
-
cpe:2.3:a:liquidjs:liquidjs:9.20.1
-
cpe:2.3:a:liquidjs:liquidjs:9.21.0
-
cpe:2.3:a:liquidjs:liquidjs:9.22.0
-
cpe:2.3:a:liquidjs:liquidjs:9.22.1
-
cpe:2.3:a:liquidjs:liquidjs:9.23.0
-
cpe:2.3:a:liquidjs:liquidjs:9.23.1
-
cpe:2.3:a:liquidjs:liquidjs:9.23.2
-
cpe:2.3:a:liquidjs:liquidjs:9.23.3
-
cpe:2.3:a:liquidjs:liquidjs:9.23.4
-
cpe:2.3:a:liquidjs:liquidjs:9.24.0
-
cpe:2.3:a:liquidjs:liquidjs:9.24.1
-
cpe:2.3:a:liquidjs:liquidjs:9.24.2
-
cpe:2.3:a:liquidjs:liquidjs:9.25.0
-
cpe:2.3:a:liquidjs:liquidjs:9.25.1
-
cpe:2.3:a:liquidjs:liquidjs:9.26.0
-
cpe:2.3:a:liquidjs:liquidjs:9.27.0
-
cpe:2.3:a:liquidjs:liquidjs:9.27.1
-
cpe:2.3:a:liquidjs:liquidjs:9.28.0
-
cpe:2.3:a:liquidjs:liquidjs:9.28.1
-
cpe:2.3:a:liquidjs:liquidjs:9.28.2
-
cpe:2.3:a:liquidjs:liquidjs:9.28.3
-
cpe:2.3:a:liquidjs:liquidjs:9.28.4
-
cpe:2.3:a:liquidjs:liquidjs:9.28.5
-
cpe:2.3:a:liquidjs:liquidjs:9.28.6
-
cpe:2.3:a:liquidjs:liquidjs:9.29.0
-
cpe:2.3:a:liquidjs:liquidjs:9.3.0
-
cpe:2.3:a:liquidjs:liquidjs:9.3.1
-
cpe:2.3:a:liquidjs:liquidjs:9.30.0
-
cpe:2.3:a:liquidjs:liquidjs:9.31.0
-
cpe:2.3:a:liquidjs:liquidjs:9.32.0
-
cpe:2.3:a:liquidjs:liquidjs:9.32.1
-
cpe:2.3:a:liquidjs:liquidjs:9.33.0
-
cpe:2.3:a:liquidjs:liquidjs:9.33.1
-
cpe:2.3:a:liquidjs:liquidjs:9.34.0
-
cpe:2.3:a:liquidjs:liquidjs:9.34.1
-
cpe:2.3:a:liquidjs:liquidjs:9.35.0
-
cpe:2.3:a:liquidjs:liquidjs:9.35.1
-
cpe:2.3:a:liquidjs:liquidjs:9.35.2
-
cpe:2.3:a:liquidjs:liquidjs:9.36.0
-
cpe:2.3:a:liquidjs:liquidjs:9.36.1
-
cpe:2.3:a:liquidjs:liquidjs:9.36.2
-
cpe:2.3:a:liquidjs:liquidjs:9.37.0
-
cpe:2.3:a:liquidjs:liquidjs:9.38.0
-
cpe:2.3:a:liquidjs:liquidjs:9.39.0
-
cpe:2.3:a:liquidjs:liquidjs:9.39.1
-
cpe:2.3:a:liquidjs:liquidjs:9.39.2
-
cpe:2.3:a:liquidjs:liquidjs:9.4.0
-
cpe:2.3:a:liquidjs:liquidjs:9.4.1
-
cpe:2.3:a:liquidjs:liquidjs:9.4.2
-
cpe:2.3:a:liquidjs:liquidjs:9.40.0
-
cpe:2.3:a:liquidjs:liquidjs:9.41.0
-
cpe:2.3:a:liquidjs:liquidjs:9.42.0
-
cpe:2.3:a:liquidjs:liquidjs:9.42.1
-
cpe:2.3:a:liquidjs:liquidjs:9.43.0
-
cpe:2.3:a:liquidjs:liquidjs:9.5.0
-
cpe:2.3:a:liquidjs:liquidjs:9.6.0
-
cpe:2.3:a:liquidjs:liquidjs:9.6.1
-
cpe:2.3:a:liquidjs:liquidjs:9.6.2
-
cpe:2.3:a:liquidjs:liquidjs:9.7.0
-
cpe:2.3:a:liquidjs:liquidjs:9.7.1
-
cpe:2.3:a:liquidjs:liquidjs:9.7.2
-
cpe:2.3:a:liquidjs:liquidjs:9.8.0
-
cpe:2.3:a:liquidjs:liquidjs:9.9.0