@tinacms/graphql's Media Endpoints Can Escape the Media Root via Symlinks or Junctions
- Severity:
- High
Description
@tinacms/cli recently added lexical path-traversal checks to the dev media routes, but the implementation still validates only the path string and does not resolve symlink or junction targets.
If a link already exists under the media root, Tina accepts a path like pivot/written-from-media.txt as “inside” the media directory and then performs real filesystem operations through that link target.
Recommendation
Update the @tinacms/graphql package to the latest compatible version. Followings are version details:
- Affected version(s): <= 2.2.1
- Patched version(s): 2.2.2
References
Related Issues
- @tinacms/graphql's `FilesystemBridge` Path Validation Can Be Bypassed via Symlinks or Junctions - CVE-2026-34604
- @tinacms/graphql has Path Traversal that leads to overwrite of arbitrary files - CVE-2026-33949
- @tinacms/graphql has a Path Traversal issue - CVE-2026-24125
- NocoBase Affected by Sandbox Escape to RCE via console._stdout Prototype Chain Traversal in Workflow Script Node - CVE-2026-34156
You might also like:
- Tags:
- npm
- @tinacms/graphql
Anything's wrong? Let us know Last updated on April 06, 2026


