Arbitrary File Read via Disabled Vite Filesystem Restriction in TinaCMS CLI
Description
Tina is a headless content management system. Prior to 2.1.8, the TinaCMS CLI dev server configures Vite with server.fs.strict: false, which disables Vite's built-in filesystem access restriction. This allows any unauthenticated attacker who can reach the dev server to read arbitrary files on the host system. This vulnerability is fixed in 2.1.8.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
TinaCMS CLI dev server <2.1.8 disables Vite's fs.strict, allowing unauthenticated attackers to read arbitrary host files via HTTP requests.
Root
Cause
TinaCMS 2.1.7 and earlier, when running the development server via tinacms dev, configures the underlying Vite dev server with the option server.fs.strict: false [1][2]. This disables Vite's built-in filesystem access restriction, which normally prevents arbitrary file reads through the development server's static file handler [2].
Attack
Vector
The TinaCMS middleware only intercepts a limited set of URL path prefixes (e.g., /media/*, /graphql). Any HTTP request to a path outside these routes falls through to Vite's default static file handler, which will serve files directly from the absolute path specified in the URL [2]. An unauthenticated attacker who can reach the dev server (default port 4001) can send requests such as curl http://localhost:4001/etc/passwd to read arbitrary files [2]. Additionally, the server enables permissive CORS headers, which may facilitate browser-based attacks like DNS rebinding [2].
Impact
Attackers can read any file on the host system that the server process has read permissions for, including sensitive system files like /etc/passwd or /etc/shadow [2]. This poses a significant risk in development environments where the dev server port is publicly accessible, such as cloud IDEs (GitHub Codespaces, Gitpod), Docker/VM setups with port forwarding, or misconfigured environments binding to 0.0.0.0 [2].
Mitigation
The vulnerability is fixed in TinaCMS CLI version 2.1.8 [1][2]. Users should upgrade to version 2.1.8 or later. As a workaround, ensure the dev server is not exposed on public networks or bind only to localhost (127.0.0.1).
AI Insight generated on May 18, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
@tinacms/clinpm | < 2.1.8 | 2.1.8 |
Affected products
1- @tinacms/cliv5Range: < 2.1.8
Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
3- github.com/advisories/GHSA-m48g-4wr2-j2h6ghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2026-29066ghsaADVISORY
- github.com/tinacms/tinacms/security/advisories/GHSA-m48g-4wr2-j2h6ghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.