
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-35525 is a symlink-following vulnerability in LiquidJS, a Shopify/GitHub Pages compatible JavaScript template engine, that allows attackers to bypass configured root directory restrictions and read arbitrary files on the server. The flaw affects all LiquidJS versions up to and including 10.25.2 (npm package liquidjs). It was published on April 8, 2026, with the fix released in version 10.25.3. The vulnerability carries a CVSS v3.1 score of 7.5 (High) and a CVSS v4.0 score of 8.2 (High) (GitHub Advisory, LiquidJS Advisory).
The root cause is classified as CWE-61 (UNIX Symbolic Link Following): LiquidJS validates that template paths for {% include %}, {% render %}, and {% layout %} directives fall within the configured root, partials, or layouts directories using a string-based path check, but does not resolve the canonical filesystem path (realpath) before opening the file. As a result, a symlink placed inside an allowed directory (e.g., partials/link.liquid) passes the containment check because its pathname string is within the allowed root, but when the file is opened, the OS follows the symlink to its target outside the allowed directory. The fix, implemented in PR #867, changes the fs.contains function to use realpath for the containment check, ensuring the actual file location — not just the path string — is validated (LiquidJS Advisory, Fix PR).
Successful exploitation allows an attacker to read and render arbitrary files accessible to the LiquidJS process, bypassing the intended template root restrictions. This results in a high confidentiality impact — sensitive files such as application secrets, configuration files, credentials, or other data readable by the server process can be exfiltrated. There is no integrity or availability impact, but the data disclosure risk is significant in multi-tenant or user-controlled template environments such as platforms supporting uploaded themes, extracted archives, or repository-managed template trees (GitHub Advisory).
liquidjs <= 10.25.2) that allows users to upload or influence files within the configured template root directory (e.g., a theme upload feature, archive extraction, or repository-synced templates).ln -s /etc/passwd /path/to/template-root/partials/evil.liquid{% render "evil.liquid" %}/etc/passwd), as LiquidJS follows the symlink and renders the external file without restriction (LiquidJS Advisory)..liquid files that are symlinks) within the application's configured template root, partials, or layouts directories pointing to locations outside those directories (e.g., /etc/, /var/, application config directories).auditd on Linux) showing the Node.js process opening files outside the expected template root directory, particularly sensitive system files or application configuration files.Upgrade LiquidJS to version 10.25.3 or later, which resolves the issue by using realpath for filesystem containment checks in fs.contains (LiquidJS Release, Fix PR). As a defense-in-depth measure, restrict write access to template directories so that untrusted parties cannot create symlinks; consider deploying on filesystems or with OS-level configurations (e.g., nosymfollow mount option on Linux) that prevent symlink following. Additionally, run the LiquidJS process with the minimum necessary filesystem permissions to limit the scope of any potential file disclosure (GitHub Advisory).
The vulnerability was reported by security researcher Jvr2022 and addressed promptly by the LiquidJS maintainer (harttle), with the fix merged on April 6, 2026, and the advisory published on April 8, 2026 (LiquidJS Advisory). The release received positive community acknowledgment on GitHub. No significant broader media coverage or notable public researcher commentary beyond the advisory itself has been identified.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."