---
id: CVE-2026-61556
title: >-
  LiquidJS is a Shopify / GitHub Pages compatible template engine in pure
  JavaScript
summary: >-
  LiquidJS is a Shopify / GitHub Pages compatible template engine in pure
  JavaScript. From 10.26.0 until 10.27.1, the strip_html filter in
  src/filters/html.ts can enter an infinite loop when an input string contains
  <, includes at least on…
severity: high
cwe:
  - CWE-835
vendor: liquidjs
product: liquidjs
affected:
  - 'liquidjs >= 10.26.0, < 10.27.1'
patched:
  - liquidjs 10.27.1
published: '2026-08-19'
updated: '2026-09-09'
sourceUpdated: '2026-09-09T21:19:49.197'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-61556'
references:
  - url: >-
      https://github.com/harttle/liquidjs/commit/5c3522f33928aae66f0fe85c36e1d9015c768fe2
    label: security-advisories@github.com
  - url: 'https://github.com/harttle/liquidjs/pull/917'
    label: security-advisories@github.com
  - url: 'https://github.com/harttle/liquidjs/releases/tag/v10.27.1'
    label: security-advisories@github.com
  - url: >-
      https://github.com/harttle/liquidjs/security/advisories/GHSA-m7fp-h3p4-hr49
    label: security-advisories@github.com
  - url: >-
      https://github.com/harttle/liquidjs/security/advisories/GHSA-m7fp-h3p4-hr49
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-61556'
  - url: 'https://github.com/advisories/GHSA-m7fp-h3p4-hr49'
tags:
  - nvd
  - ghsa
  - npm
epss: 0.00393
epssPercentile: 0.33323
aliases:
  - GHSA-m7fp-h3p4-hr49
ecosystem: npm
ingestedAt: '2026-09-03T18:06:41.935Z'
---

## Overview

LiquidJS is a Shopify / GitHub Pages compatible template engine in pure JavaScript. From 10.26.0 until 10.27.1, the strip_html filter in src/filters/html.ts can enter an infinite loop when an input string contains <, includes at least one preceding character, and has no later >. In strip_html, the search for the next opener advances lt while the loop index remains unchanged when the closer search returns -1, and the equality-only stall guard does not exit because the loop index is less than lt. Reprocessing the same state indefinitely blocks template rendering and can cause denial of service with an input as short as a<. This issue is fixed in version 10.27.1.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-61556)

Affected packages:

- `liquidjs >= 10.26.0, < 10.27.1`

Patched in:

- `liquidjs 10.27.1`

Source: https://github.com/advisories/GHSA-m7fp-h3p4-hr49
