Junglewise Threat Intelligence

CVE-2026-44646: LiquidJS information disclosure via ownPropertyOnly bypass in render tag

CVE-2026-44646 · Severity: medium · CVSS 5.3 · Published 2026-06-17

Executive brief

LiquidJS is a template engine used to generate dynamic web content, similar to the systems used by Shopify and GitHub Pages. A security flaw was found where the engine fails to enforce security restrictions when processing sub-templates (partials) via the "render" tag. This allows an attacker who can provide or influence template content to access sensitive internal data or system properties that were intended to be hidden, potentially leading to the exposure of secrets or internal configuration.

Technical details

A vulnerability exists in LiquidJS versions 10.25.7 and below where the `Context.spawn()` method fails to propagate the `ownPropertyOnly` flag to child contexts. While a developer may explicitly set `{ ownPropertyOnly: true }` in `RenderOptions` to prevent access to the prototype chain for untrusted templates, this setting is silently discarded when a template uses the `{% render %}` tag. The child context re-derives the setting from the global instance options instead of the current render's overrides. An attacker can exploit this to read sensitive prototype-chain properties (like `passwordHash` or internal framework state) from objects passed into the partial. This is fixed in version 10.26.0 by ensuring the resolved `ownPropertyOnly` value is passed during context spawning.

Affected products

  • harttle liquidjs <= 10.25.7

Timeline

  • 2026-05-14: patched: Version 10.26.0 released
  • 2026-05-24: advisory: GitHub Security Advisory published
  • 2026-06-17: disclosed: CVE-2026-44646 published to NVD

References

Related threats