Cyber Resilience

CVE-2026-33287

DoS in Liquidjs ≤ 10.25.1

Public PoCDoS
Published
26 March 2026
Modified
30 March 2026
Patch / advisory
CVSS Score v3.1 7.5
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Score 0.0047 38th percentile
Risk Priority 57 floored blend · peak EPSS

Summary

CVE-2026-33287 is a high-severity Improper Input Validation (CWE-20) vulnerability in Liquidjs Liquidjs. Its CVSS base score is 7.5 (High).

Operationally, exploitation aligns with the MITRE ATT&CK technique OS Exhaustion Flood (T1499.001); ranked at the 38th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified map to SA-11 (Developer Testing and Evaluation) and SC-5 (Denial-of-service Protection) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-33287 is a denial-of-service vulnerability in LiquidJS, a pure JavaScript template engine compatible with Shopify and GitHub Pages. In versions prior to 10.25.1, the `replace_first` filter improperly uses JavaScript's `String.prototype.replace()` method, which interprets `$&` as a backreference to the matched substring. This allows exponential memory amplification—up to a 625,000:1 ratio—because the filter's `memoryLimit` enforcement only accounts for the input string length, not the expanded output size, as mapped to CWE-20 (Improper Input Validation) and CWE-400 (Uncontrolled Resource Consumption).

The vulnerability has a CVSS v3.1 base score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H), indicating it is exploitable over the network with low complexity by unauthenticated attackers requiring no user interaction. An attacker can craft a malicious template input for the `replace_first` filter that triggers repeated backreference expansions, rapidly exhausting server memory while remaining within configured limits, resulting in application crashes or service denial.

The GitHub security advisory (GHSA-6q5m-63h6-5x4v) and commit 35d523026345d80458df24c72e653db78b5d061d detail the patch in LiquidJS version 10.25.1, which addresses the memory accounting flaw in the filter. Security practitioners should upgrade to 10.25.1 or later and review deployments using LiquidJS for templating, especially in web-facing applications.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

LiquidJS is a Shopify / GitHub Pages compatible template engine in pure JavaScript. Prior to version 10.25.1, the `replace_first` filter in LiquidJS uses JavaScript's `String.prototype.replace()` which interprets `$&` as a back reference to the matched substring. The filter only charges…

more

`memoryLimit` for the input string length, not the amplified output. An attacker can achieve exponential memory amplification (up to 625,000:1) while staying within the `memoryLimit` budget, leading to denial of service. Version 10.25.1 patches the issue.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1499.001 OS Exhaustion Flood Impact
Adversaries may launch a denial of service (DoS) attack targeting an endpoint's operating system (OS).
T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
T1498 Network Denial of Service Impact
Adversaries may perform Network Denial of Service (DoS) attacks to degrade or block the availability of targeted resources to users.
T1499 Endpoint Denial of Service Impact
Adversaries may perform Endpoint Denial of Service (DoS) attacks to degrade or block the availability of services to users.
T1499.002 Service Exhaustion Flood Impact
Adversaries may target the different network services provided by systems to conduct a denial of service (DoS).
T1499.003 Application Exhaustion Flood Impact
Adversaries may target resource intensive features of applications to cause a denial of service (DoS), denying availability to those applications.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2026-33285Same product: Liquidjs Liquidjs
CVE-2026-50196Shared CWE-20, CWE-400
CVE-2023-22470Shared CWE-20, CWE-400
CVE-2025-21230Shared CWE-20, CWE-400
CVE-2023-45167Shared CWE-20, CWE-400
CVE-2023-42503Shared CWE-20, CWE-400
CVE-2023-27483Shared CWE-20, CWE-400
CVE-2024-32007Shared CWE-20, CWE-400
CVE-2026-67978Shared CWE-20, CWE-400
CVE-2026-45783Shared CWE-20, CWE-400

Affected Assets

liquidjs
liquidjs
≤ 10.25.1

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)
  • 6 hardening rules · 3 OS baselines
Validate
Prove the fix (OWASP ASVS)

Mitigating Controls (NIST 800-53 r5) AI

Developer testing and evaluation can discover missing input validation through analysis or test cases.

SC-5 directly limits the effects of resource-exhaustion events that constitute uncontrolled consumption.

SC-6 enforces explicit allocation limits on resources, structurally preventing the weakness from occurring.

SI-10 directly requires validity checks on information inputs, structurally preventing improper or missing validation.

Requiring documented development standards and tools can embed input-validation practices into the engineering process.

Process isolation confines resource consumption to separate domains, reducing blast radius without stopping the root flaw.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.IR-04 mostly match
prevents

Explicitly requires monitoring and maintaining resource capacity, directly addressing uncontrolled consumption to preserve availability.

PR.PS-06 mostly match
prevents

Secure SDLC practices directly require and enforce input validation during development.

DE.CM-09 partial match
prevents

Continuous monitoring of computing resources can detect resource exhaustion but does not itself enforce allocation limits.

PR.IR-03 partial match
prevents

Resilience mechanisms such as avoiding single points of failure indirectly reduce impact of resource exhaustion.

PR.PS-01 partial match
prevents

Hardened configuration baselines can include resource quotas and limits that constrain consumption.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

finds

Resource-utilization monitoring and alerting on bottlenecks or overloads limits the impact of denial-of-service or resource-exhaustion attacks.

finds

Testing against a defined set of requirements and using code review plus vulnerability scanning forces validation of inputs and handling of unanticipated conditions, reducing the chance that malformed data will be accepted.

prevents

By continuously monitoring utilization, stress-testing peak loads, and maintaining documented plans to scale or throttle resources, the control directly limits an attacker’s ability to drive a system into uncontrolled resource exhaustion.

finds

Pre-agreed severity-based prioritization and resource allocation during incident triage reduce the likelihood that an attacker-induced resource exhaustion will overwhelm the organization before corrective action is taken.

mitigates

Business-continuity plans that include resource-management controls reduce the likelihood that an attacker can trigger uncontrolled resource consumption by forcing the system into a degraded or fallback state.

mitigates

Defining RTOs and capacity requirements for ICT services during business-impact analysis forces organizations to provision sufficient resources and throttling mechanisms, reducing the likelihood that an attacker can induce denial-of-service through uncontrolled resource consumption.

Hardening callouts derived

Configuration rules from DISA STIG baselines that bear on weaknesses of the type cited by this CVE. Each rule is shown with the relationship its mapping actually records, against the CWE it was authored against. Derived via CVE→CWE over `controls_xwalks` (authoritative rows only; rows rated `none` are excluded).

RHEL 8 (1 rule)
  • V-230265 RHEL 8 must prevent the installation of software, patches, service packs, device drivers, or operating system components of local packages without verification they have been digitally signed using a certificate that is issued by a Certificate Authority (CA) that is recognized and approved by the organization. prevents CWE-20

References