Skip to content
OpenAdvisories
High · 7.1 CVE-2026-34603 EUVD-2026-17964GHSA-g87c-r2jp-293w

@tinacms/graphql's Media Endpoints Can Escape the Media Root via Symlinks or Junctions

Published Apr 1, 2026 · Updated Apr 1, 2026 · Assigned by GitHub_M

Description

Tina is a headless content management system. Prior to version 2.2.2, @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. This allows out-of-root media listing and write access, and the same root cause also affects delete. This issue has been patched in version 2.2.2.

Affected products

VendorProductAffectedFixed
tinacms tinacms < 2.2.2 —

Affected packages

EcosystemPackageAffectedFixedRecord
npm @tinacms/graphql < 2.2.2 2.2.2 GHSA-g87c-r2jp-293w

References