CVE-2026-92812 Overview
CVE-2026-92812 is a path traversal vulnerability [CWE-22] in decap-server, the local backend used during development with Decap CMS. The local proxy containment guard compares paths using plain string prefix matching without validating path separators. Attackers can craft requests that reference sibling directories whose names start with the repository directory name. This lets them read, write, or delete files outside the intended repository root.
Critical Impact
Attackers reaching the local decap-server proxy can break out of the repository sandbox to access sibling directories, resulting in arbitrary file read, write, and deletion outside the intended content root.
Affected Products
- Decap CMS decap-server local development proxy
- The customValidators.ts containment guard in packages/decap-server/src/middlewares/joi/
- Development environments running decap-server as the local backend
Discovery Timeline
- 2026-09-16 - CVE-2026-92812 published to the National Vulnerability Database (NVD)
- 2026-09-16 - Last updated in NVD database
Technical Details for CVE-2026-92812
Vulnerability Analysis
The flaw lives in the local proxy's containment guard inside customValidators.ts. The guard verifies that a requested filesystem path stays within the configured repository root. It performs this check with a plain string startsWith style comparison against the repository path.
Because the comparison does not require a trailing path separator, any sibling directory whose name begins with the repository directory name passes the check. For example, if the repository root is /home/user/site, a request targeting /home/user/site-backup/secrets.txt also satisfies the prefix test. The guard then permits file operations on that sibling path.
The result is a containment bypass that grants attackers read, write, and delete access to arbitrary files whose paths share a naming prefix with the repository root. Exploitation requires reaching the local proxy and user interaction, which raises the attack complexity.
Root Cause
The root cause is missing path separator normalization in the containment check. Secure containment logic must either resolve both paths to canonical form and compare directory components, or append a trailing separator before performing the prefix comparison. decap-server did neither, so directory boundaries were not enforced.
Attack Vector
An attacker sends crafted requests to the decap-server HTTP proxy with file paths pointing at sibling directories that share the repository's name prefix. When a developer runs the local backend and interacts with a malicious page or resource that issues these requests, the server executes the file operations against paths outside the intended root. See the VulnCheck Advisory on Decap Server and the GitHub Custom Validators Code for the vulnerable containment logic.
Detection Methods for CVE-2026-92812
Indicators of Compromise
- HTTP requests to the local decap-server API containing file paths that reference directories adjacent to the configured repository root.
- Unexpected file creation, modification, or deletion in directories whose names share a prefix with the repository directory.
- decap-server process activity performing filesystem operations outside the developer's project folder.
Detection Strategies
- Audit decap-server request logs for path parameters that resolve outside the configured repository root after normalization.
- Compare requested paths against the canonical repository root, requiring an exact directory boundary match rather than a string prefix.
- Monitor developer workstations for filesystem writes originating from the Node.js process hosting decap-server.
Monitoring Recommendations
- Enable filesystem auditing on developer machines for directories adjacent to Decap CMS project roots.
- Alert on decap-server bindings to non-loopback interfaces, which broaden the attack surface.
- Track versions of Decap CMS and decap-server deployed across development environments to identify unpatched instances.
How to Mitigate CVE-2026-92812
Immediate Actions Required
- Restrict decap-server to 127.0.0.1 and never expose it on shared networks or the public internet.
- Run decap-server under a least-privileged local user with filesystem access limited to the project directory.
- Avoid loading untrusted web content in browsers while decap-server is running, since browser-originated requests can drive exploitation.
Patch Information
Apply the latest decap-server release from the GitHub Repository for Decap CMS once the containment guard fix is published. Review the maintainers' security notes and the VulnCheck Advisory on Decap Server for fixed version details. Additional community documentation is available in the GitHub OSS Decap CMS Documentation.
Workarounds
- Rename the local repository directory so no sibling directories share its name prefix, eliminating the exploitable naming pattern.
- Place the repository inside a dedicated parent directory that contains no other files or folders.
- Run decap-server inside a container or sandbox with a filesystem view restricted to the repository path.
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

