Impact
The vulnerability is an infinite loop in LiquidJS's strip_html filter triggered by an input string that contains a '<' character but no matching '>'. This loop can be entered with a minimal payload such as 'a<', causing the rendering engine to become stuck. The result is a denial of service as the template rendering cannot complete, potentially stalling the entire application or HTTP request until it times out or is killed.
Affected Systems
The issue affects the LiquidJS library from version 10.26.0 to 10.27.1, inclusive. It is implemented by the project maintainer harttle under the package name liquidjs. The fix is included in version 10.27.1 and later releases.
Risk and Exploitability
The vulnerability has a CVSS score of 8.7, indicating a high severity. The EPSS score is not available, and the vulnerability is not listed in CISA's KEV catalog. The attack path is straightforward: any template that invokes the strip_html filter with crafted user input can trigger the infinite loop. No special privileges are required beyond the ability to supply input to the template rendering process. The impact is a denial of service that can affect application availability, and the risk is high due to the wide use of LiquidJS in web applications.
OpenCVE Enrichment
Github GHSA