CVE-2026-44645 LiquidJS has a renderLimit DoS guard bypass via empty `{% for %}` body

Medium 6.5 Published Updated

Attackers can bypass renderLimit DoS protections in LiquidJS using empty loop tags, causing excessive CPU consumption and service unavailability.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-44645?

CVE-2026-44645 is a medium-severity denial of service vulnerability in harttle liquidjs, published on 17 Jun 2026. Any signed-in user can exploit it over the network, with no action from the victim.

Official 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.

Weakness: CWE-400

Which versions are affected by CVE-2026-44645?

2 open source packages ship an affected version, including liquidjs.

PackageAffectedFixed in
liquidjs npmAll versions10.26.0
liquidjs npmAll versions10.26.0

How do I fix CVE-2026-44645?

Upgrade liquidjs to 10.26.0 or later.

Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.

Is CVE-2026-44645 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-44645 exists.

Sources

Also known as ECHO-3064-ae04-ebb0, GHSA-8xx9-69p8-7jp3, MINI-27x5-pmx5-f9q3, MINI-vxv8-fvcv-9hc4, MINI-w22w-rqp4-8w6v.

Is CVE-2026-44645 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free