Skip to main content
Press slash or control plus K to focus the search. Use the arrow keys to navigate results and press enter to open a threat.
Reconnecting to live updates…

CVE-2026-33285: CWE-20: Improper Input Validation in harttle liquidjs

0
High
VulnerabilityCVE-2026-33285cvecve-2026-33285cwe-20cwe-400
Published: Thu Mar 26 2026 (03/26/2026, 00:34:25 UTC)
Source: CVE Database V5
Vendor/Project: harttle
Product: liquidjs

Description

LiquidJS is a Shopify / GitHub Pages compatible template engine in pure JavaScript. Prior to version 10.25.1, LiquidJS's `memoryLimit` security mechanism can be completely bypassed by using reverse range expressions (e.g., `(100000000..1)`), allowing an attacker to allocate unlimited memory. Combined with a string flattening operation (e.g., `replace` filter), this causes a V8 Fatal error that crashes the Node.js process, resulting in complete denial of service from a single HTTP request. Version 10.25.1 patches the issue.

AI-Powered Analysis

Machine-generated threat intelligence

AILast updated: 03/26/2026, 01:16:31 UTC

Technical Analysis

LiquidJS is a widely used JavaScript template engine compatible with Shopify and GitHub Pages. Prior to version 10.25.1, it contains a critical vulnerability (CVE-2026-33285) stemming from improper input validation (CWE-20) and resource exhaustion (CWE-400). The vulnerability arises because the memoryLimit mechanism, designed to restrict memory usage, can be bypassed by crafting reverse range expressions such as (100000000..1). This bypass allows attackers to allocate unlimited memory. When this is combined with string flattening operations like the replace filter, it causes the underlying V8 JavaScript engine to encounter a fatal error, crashing the Node.js process hosting the application. This crash results in a denial of service (DoS) condition triggered by a single HTTP request, requiring no privileges or user interaction. The flaw affects all versions of LiquidJS before 10.25.1, which was released to patch this issue. The CVSS v3.1 score is 7.5 (high), reflecting network attack vector, low attack complexity, no privileges or user interaction required, and a high impact on availability. Although no exploits have been observed in the wild yet, the vulnerability poses a significant risk to any Node.js applications using vulnerable LiquidJS versions, especially those exposed to untrusted user input in templating contexts.

Potential Impact

The primary impact of this vulnerability is a denial of service condition caused by crashing the Node.js process running LiquidJS. This can disrupt web services, e-commerce platforms, and static site generators relying on LiquidJS, leading to downtime and potential loss of revenue or user trust. Since the attack requires only a single HTTP request and no authentication, it can be exploited remotely by unauthenticated attackers, increasing the risk of widespread disruption. Organizations using LiquidJS in public-facing applications are particularly vulnerable. The unlimited memory allocation could also lead to resource exhaustion on hosting infrastructure, potentially affecting other applications on shared servers. While confidentiality and integrity are not directly impacted, the availability impact is severe, especially for high-traffic or critical web services. The vulnerability could be leveraged as part of a larger attack chain to cause service outages or degrade user experience.

Mitigation Recommendations

The definitive mitigation is to upgrade LiquidJS to version 10.25.1 or later, which patches the memoryLimit bypass vulnerability. Until upgrading is possible, organizations should implement strict input validation and sanitization on all user-supplied data passed to LiquidJS templates, specifically filtering or rejecting suspicious range expressions such as reverse ranges. Rate limiting and web application firewalls (WAFs) can help detect and block anomalous requests attempting to exploit this vulnerability. Monitoring Node.js application logs and system resource usage can provide early warning signs of attempted exploitation. Additionally, isolating Node.js processes and employing container resource limits can reduce the impact of memory exhaustion. Developers should audit template usage patterns to avoid complex or untrusted input in range expressions and string flattening filters. Finally, maintain an incident response plan to quickly recover from potential DoS events caused by this vulnerability.

Pro Console: star threats, build custom feeds, automate alerts via Slack, email & webhooks.Upgrade to Pro

Technical Details

Data Version
5.2
Assigner Short Name
GitHub_M
Date Reserved
2026-03-18T18:55:47.426Z
Cvss Version
3.1
State
PUBLISHED

Threat ID: 69c4854ef4197a8e3b9c70ba

Added to database: 3/26/2026, 1:01:02 AM

Last enriched: 3/26/2026, 1:16:31 AM

Last updated: 3/26/2026, 5:40:18 AM

Views: 9

Community Reviews

0 reviews

Crowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.

Sort by
Loading community insights…

Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.

Actions

PRO

Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.

Please log in to the Console to use AI analysis features.

Need more coverage?

Upgrade to Pro Console for AI refresh and higher limits.

For incident response and remediation, OffSeq services can help resolve threats faster.

Latest Threats

Breach by OffSeqOFFSEQFRIENDS — 25% OFF

Check if your credentials are on the dark web

Instant breach scanning across billions of leaked records. Free tier available.

Scan now
OffSeq TrainingCredly Certified

Lead Pen Test Professional

Technical5-day eLearningPECB Accredited
View courses