Information disclosure in harttle liquidjs
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Information disclosure
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · NVD. Fix status from CNA and GitHub. Impact type from CWE-200.
Summary
LiquidJS is a Shopify / GitHub Pages compatible template engine in pure JavaScript. Prior to 10.25.4, the sort_natural filter bypasses the ownPropertyOnly security option, allowing template authors to extract values of prototype-inherited properties through a sorting side-channel attack. Applications relying on ownPropertyOnly: true as a security boundary (e.g., multi-tenant template systems) are exposed to information disclosure of sensitive prototype properties such as API keys and tokens. This vulnerability is fixed in 10.25.4.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| harttle | liquidjs | before 10.25.4 | 10.25.4 | Patch available | CNA |
| — | liquidjs (npm) | before 10.25.4 | 10.25.4 | Patch available | GHSA-rv5g-f82m-qrvv |
- liquidjs Vendorharttle Affected before 10.25.4 Fixed in 10.25.4 Patch available CNA
- liquidjs (npm) Vendor— Affected before 10.25.4 Fixed in 10.25.4 Patch available GHSA-rv5g-f82m-qrvv
Remediation
- Fix · CNA liquidjs (harttle) Fixed in 10.25.4
- Fix · GHSA-rv5g-f82m-qrvv liquidjs (npm) Fixed in 10.25.4 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-39412
- 2026-10-03 Alias added: GHSA-rv5g-f82m-qrvv
References
More harttle Liquidjs vulnerabilities
- TI-2026-29912 LiquidJS is vulnerable to Denial of Service via circular block reference in layout CVSS 3.1HIGH 7.5
- TI-2026-25698 LiquidJS has Exponential Memory Amplification through its replace_first Filter $& Pattern CVSS 3.1HIGH 7.5
- TI-2026-25696 LiquidJS: memoryLimit Bypass through Negative Range Values Leads to Process Crash CVSS 3.1HIGH 7.5
- TI-2026-27640 LiquidJS has a root restriction bypass for partial and layout loading through symlinked templates CVSS 4.0HIGH 8.2
- TI-2022-09484 Information exposure in liquidjs CVSS 3.1MEDIUM 5.3
- TI-2026-26466 LiquidJS has a Memory Limit Bypass via Quadratic Amplification in `replace` Filter CVSS 3.1MEDIUM 5.3
Sources
- CVE-2026-39412 · CVE Program
- CVE-2026-39412 · NVD
- FIRST EPSS
- GHSA-rv5g-f82m-qrvv · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences