CVE-2026-44645 Details
Description
LiquidJS is a Shopify/GitHub Pages compatible template engine written in pure JavaScript. In versions 10.25.7 and below, the renderLimit option can be fully bypassed by a {% for %} (or {% tablerow %}) tag whose body is empty. The renderLimit option is documented in docs/source/tutorials/dos.md as the mechanism that "mitigates this by limiting the time consumed by each render() call." The per-iteration time check is reached only when the body contains at least one template node, so a template such as {%- for i in (1..N) -%}{%- endfor -%} iterates the full collection without ever consulting renderLimit. With a configured renderLimit of 50 ms, a single parseAndRenderSync call has been observed to consume 2.26 seconds (~45× over the limit) and scales linearly with N up to memoryLimit, allowing a low-privileged template author to wedge an event-loop thread for an attacker-chosen duration. Deployments that rely on a finite renderLimit for DoS protection (common in multi-tenant template-authoring environments) can still be forced by a single crafted template to monopolize a Node.js event-loop worker for attacker-controlled time, potentially stalling in-flight requests, with availability impact only. This issue has been fixed in version 10.26.0.
A denial-of-service vulnerability has been identified in LiquidJS, a template engine compatible with Shopify and GitHub Pages. This issue affects versions 10.25.7 and prior. The vulnerability arises because the 'renderLimit' option, which is intended to limit the time spent on each render call, can be completely bypassed by using a 'for' or 'tablerow' tag with an empty body. The 'renderLimit' is only enforced when the body contains at least one template node. As a result, templates can be crafted to iterate through large collections without adhering to the specified time limit, effectively monopolizing a Node.js event-loop thread for an attacker-controlled duration. This can disrupt in-flight requests on the server, leading to availability issues.
Users can upgrade to LiquidJS version 10.26.0 or later, where this vulnerability has been fixed.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
Volerion
Assessed Jun 17, 2026CISA-ADP
Assessed Jun 18, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://github.com/harttle/liquidjs/security/advisories/GHSA-8xx9-69p8-7jp3 | CISA-ADP | AdvisoryExploitRemedyVendor |
| https://github.com/harttle/liquidjs/commit/5b9c3469085e01c79e2d0af28e2a13f730e1793d | [email protected] | Source CodeVendor |
| https://github.com/harttle/liquidjs/releases/tag/v10.26.0 | [email protected] | Release NotesVendor |
| https://github.com/harttle/liquidjs/security/advisories/GHSA-8xx9-69p8-7jp3 | [email protected] | AdvisoryExploitRemedyVendor |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-400 | Uncontrolled Resource Consumption | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| LiquidJS | <= 10.25.7 (semver) |
CPE
Remediation
| |
Change History
2 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jun 18, 2026 | CVE Modified | CISA-ADP |
| Jun 17, 2026 | New CVE Received | [email protected] |
Volerion