Impact
LiquidJS creates a child context for the {% render %} tag using Context.spawn(), but fails to propagate the parent context's ownPropertyOnly setting. The new context inherits its ownPropertyOnly value from the instance's ownPropertyOnly option instead of respecting a per‑render override supplied to parseAndRender(). As a result, when a Liquid instance is configured for backward compatibility with ownPropertyOnly:false and the developer later attempts to lock down rendering of untrusted data with parseAndRender(..., { ownPropertyOnly: true }), the {% render %} tag silently bypasses the restriction and leaks prototype‑chain properties that would normally be hidden. This misconfiguration allows attackers to access hidden properties on JavaScript prototypes, potentially exposing sensitive data and violating integrity. The flaw is a classic example of a security‑misconfiguration weakness (CWE‑693).
Affected Systems
The vulnerability affects v10.25.7 and older releases of the Harttle LiquidJS template engine. All earlier versions prior to 10.26.0 are impacted; the issue was resolved with the 10.26.0 release. Users employing other vendor forks that forked from these versions are also susceptible if the same code path remains unchanged.
Risk and Exploitability
The CVSS score of 5.3 indicates moderate severity. EPSS is below 1 %, suggesting a low but non‑zero likelihood of exploitation at this time. The flaw is not listed in the CISA KEV catalog. Exploitation requires that an attacker control or influence the Liquid template supplied to a server, and that the server subsequently renders that template using a {% render %} tag. A successful exploit would result in the leakage of prototype‑chain properties from untrusted templates, compromising data confidentiality and potentially allowing further attacks on the host application.
OpenCVE Enrichment
Github GHSA