Impact
The replace_first filter in LiquidJS misinterprets the $& pattern as a reference to the matched substring, creating an output substantially larger than the input. An attacker can exploit this behavior to trigger a memory amplification ratio of up to 625,000:1 while keeping the input within the configured memory limit, causing the application to exhaust available memory and become unresponsive. This defect aligns with input validation and resource exhaustion weaknesses.
Affected Systems
LiquidJS, a template engine used with Node.js and in Shopify/GitHub Pages environments, is affected in all releases prior to 10.25.1. The product is maintained by Harttle and is commonly integrated into web applications that process user‑controlled templates.
Risk and Exploitability
The vulnerability scores 7.5 on CVSS, indicating high severity, and has an EPSS score below 1%, reflecting a low current exploitation probability. It is not listed in CISA’s KEV catalog. The attack vector is likely remote via malicious template input, and successful exploitation results in denial of service for all users of the affected application.
OpenCVE Enrichment
Github GHSA