CVE-2026-39859: LiquidJS path traversal in renderFile and parseFile

CVE-2026-39859 · Severity: high · CVSS 7.5 · Published 2026-04-08

LiquidJS is a template engine used to generate dynamic web content, similar to those used by Shopify and GitHub Pages. A security flaw allows the software to read files from the server that should be off-limits, even when a restricted "root" folder is configured. If an application allows users to influence which template file is loaded, an attacker could steal sensitive system files or configuration data.

Technologies: liquidjs (npm). Vendors: npm.

Quick answers

Is CVE-2026-39859 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-39859 being exploited in the wild.
How severe is CVE-2026-39859?
High severity, with a CVSS score of 7.5, published 8 April 2026.
Which products and versions are affected?
liquidjs (npm) SEMVER:introduced=0,fixed=10.25.5.
Is there a fix for CVE-2026-39859?
Yes. liquidjs (npm): upgrade to 10.25.5 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-39859 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-39859?
Check whether you run liquidjs (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • liquidjs (npm): upgrade to 10.25.5 or later
    npm install liquidjs@10.25.5

Technical details

A path traversal vulnerability exists in LiquidJS due to improper validation of the 'root' constraint in the renderFile() and parseFile() functions. While the engine is designed to restrict file access to a specific root directory, the top-level file loader fails to enforce this boundary for absolute paths or fallback results. Specifically, in src/fs/loader.ts, the 'enforceRoot' check is bypassed for LookupType.Root, allowing the engine to resolve and read files like /etc/hosts even when a different root is configured. An attacker who can provide input to these functions can achieve arbitrary file disclosure. The issue is fixed in version 10.25.3.

Affected products

  • harttle liquidjs < 10.25.3

Identifiers

  • CVE-2026-39859
  • GHSA-v273-448j-v4qj

Timeline

  • 2026-04-08: disclosed
  • 2026-04-08: advisory
  • 2026-04-08: patched

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.