PatchSiren

PatchSiren cyber security CVE debrief

CVE-2026-33287 harttle CVE debrief

CVE-2026-33287 debrief: LiquidJS `replace_first` filter allows exponential memory amplification via `$&` pattern, potentially leading to denial of service. Defenders should assess exposure, prioritize remediation, and verify inventory. The vulnerability affects LiquidJS versions prior to 10.25.1. An attacker can build a string within the `memoryLimit` budget and use `replace_first` with a replacement string containing multiple `$&` patterns to achieve exponential memory amplification. This could lead to significant memory usage and potential denial of service.

Vendor
harttle
Product
liquidjs
CVSS
HIGH 7.5
CISA KEV
Not listed in stored evidence
Original CVE published
2026-03-25
Original CVE updated
2026-10-29
Advisory published
2026-03-25
Advisory updated
2026-10-29

Who should care

Defenders responsible for LiquidJS deployments should assess exposure and prioritize remediation. This vulnerability may impact systems using LiquidJS for templating or processing user input.

Why it matters

CVE-2026-33287 is a vulnerability in LiquidJS that allows for exponential memory amplification via the `replace_first` filter. Defenders should assess exposure, prioritize remediation, and verify inventory to prevent potential denial of service attacks.

  • Denial of service due to exponential memory amplification
  • Potential for attackers to exploit vulnerability without being detected
  • Need for defenders to verify inventory and remediation for LiquidJS versions prior to 10.25.1
  • Importance of monitoring for potential attacks

Technical summary

The `replace_first` filter in LiquidJS uses JavaScript's `String.prototype.replace()` which interprets `$&` as a backreference to the matched substring. The filter only charges `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. The vulnerability affects LiquidJS versions prior to 10.25.1 and can be mitigated by upgrading to a patched version or applying compensating controls.

Defensive priority

Defenders should prioritize verifying inventory and remediation for LiquidJS versions prior to 10.25.1.

Recommended defensive actions

  • Verify inventory of LiquidJS versions in use
  • Prioritize remediation for versions prior to 10.25.1
  • Monitor for potential denial of service attacks
  • Review compensating controls for exposed systems
  • Check relevant monitoring, detection, and logs for exposed assets
  • Track exceptions, retest remediated assets, and close the item only after evidence is documented
  • Confirm whether affected product deployments exist in managed environments and assign an owner for follow-up

Evidence notes

The CVE record and source item provide details on the vulnerability, including the affected filter and potential impact. However, specific exploitation and victim information are not provided. The vulnerability is caused by the `replace_first` filter in LiquidJS using JavaScript's `String.prototype.replace()` which interprets `$&` as a backreference to the matched substring. The filter only charges `memoryLimit` for the input string length, not the amplified output. Defenders should verify inventory and remediation for LiquidJS, and 3

Sources and references

Verified primary and authoritative sources

  • CVE-2026-33287 CVE Program record

    Publisher, destination, and source semantics verified

    URL: https://www.cve.org/CVERecord?id=CVE-2026-33287

    CVE Program - Official CVE Program record with source-provided CVE metadata.

  • CVE-2026-33287 NVD vulnerability detail

    Publisher, destination, and source semantics verified

    URL: https://nvd.nist.gov/vuln/detail/CVE-2026-33287

    NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.

Supplemental references

  • LiquidJS has Exponential Memory Amplification through its replace_first Filter $& Pattern

    Unverified legacy reference

    URL: https://storage.googleapis.com/osv-vulnerabilities/npm/GHSA-6q5m-63h6-5x4v.json

    osv_dev

  • Source reference

    Unverified legacy reference

    URL: https://github.com/harttle/liquidjs/security/advisories/GHSA-6q5m-63h6-5x4v

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/harttle/liquidjs/commit/35d523026345d80458df24c72e653db78b5d061d

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/harttle/liquidjs

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/harttle/liquidjs/blob/v10.25.1/CHANGELOG.md

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/harttle/liquidjs/releases/tag/v10.25.1

    Supplemental source

Methodology and review provenance

AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.