CVE-2026-33287: LiquidJS has Exponential Memory Amplification through its replace_first Filter $& Pattern
Affects liquidjsSource GCVE Database
Not known to be exploited · CVSS 7.5 High : upgrade to 10.25.1 soon.
Data as of 29 Oct 2026, 18:38 UTC
- EPSS
- 0.4% chance of exploitation in 30 days – higher than 41% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 10.25.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HExploitation evidence
Disclosed: evidence found.
CVE published 26 Mar 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 29 Oct 2026.
What to do
Upgrade liquidjs to 10.25.1.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| npmliquidjs | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
Upgrade LiquidJS to version 10.25.1 or later, where this vulnerability is fixed. The vendor has released an official patch that correctly accounts for memory usage during replacement operations. No other mitigation is required as the issue is resolved by the patch.
Description
LiquidJS versions prior to 10.25.1 contain a vulnerability in the replace_first filter where the use of JavaScript's String.prototype.replace() with the $& pattern leads to exponential memory amplification. The filter only accounts for the input string length against a memory limit, not the potentially much larger output string. An attacker can exploit this to cause denial of service by generating output strings hundreds of thousands of times larger than the input while staying within the memory limit.
References
- github.com/harttle/liquidjs/security/advisories/GHSA-6q5m-63h6-5x4v (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-33287 (opens in a new tab)
- github.com/harttle/liquidjs/commit/35d523026345d80458df24c72e653db78b5d061d (opens in a new tab)
- github.com/harttle/liquidjs (opens in a new tab)
- github.com/harttle/liquidjs/blob/v10.25.1/CHANGELOG.md (opens in a new tab)
- github.com/harttle/liquidjs/releases/tag/v10.25.1 (opens in a new tab)