Read the docs
TI-2026-26850 Aliases CVE-2026-34603GHSA-g87c-r2jp-293w

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

Priority HIGH 71CWE-22Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
Low
Impact type
—
Confidentiality · integrity · availability
High · High · Low
Fix status
Fixed

Attack profile from CVSS 3.1 · NVD. Fix status from CNA and GitHub.

Summary

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.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00424 36th percentileScored 2026-11-07
Fix Fixed tinacms (tinacms): 2.2.2@tinacms/graphql (npm): 2.2.2

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
tinacmstinacmsbefore 2.2.22.2.2Patch availableCNA
—@tinacms/graphql (npm)before 2.2.22.2.2Patch availableGHSA-g87c-r2jp-293w
  • tinacms Vendortinacms Affected before 2.2.2 Fixed in 2.2.2 Patch available CNA
  • @tinacms/graphql (npm) Vendor— Affected before 2.2.2 Fixed in 2.2.2 Patch available GHSA-g87c-r2jp-293w

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:ssw:tinacms\/cli:*:*:*:*:*:node.js:*:*up to 2.2.1Vulnerabletinacms
  • cpe:2.3:a:ssw:tinacms\/cli:*:*:*:*:*:node.js:*:* Versions up to 2.2.1 Vulnerable ·tinacms

Remediation

  • Fix · CNA tinacms (tinacms) Fixed in 2.2.2
  • Fix · GHSA-g87c-r2jp-293w @tinacms/graphql (npm) Fixed in 2.2.2 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-34603
  2. 2026-10-03 Alias added: GHSA-g87c-r2jp-293w

References

  • TI-2026-22987 Cross-Origin File Exfiltration via CORS Misconfiguration + Path Traversal in TinaCMS CVSS 3.1CRITICAL 9.7
  • TI-2026-22988 Path Traversal Leading to Arbitrary File Read, Write and Delete in TinaCMS CVSS 3.1HIGH 8.4
  • TI-2026-22986 Path Traversal in Media Upload Handle in Tina CVSS 3.1HIGH 7.4
  • TI-2025-41854 tinacms vulnerable to arbitrary code execution CVSS 4.0HIGH 7.3
  • TI-2026-23211 Arbitrary File Read via Disabled Vite Filesystem Restriction in TinaCMS CLI CVSS 3.1MEDIUM 6.2
  • TI-2023-10626 Sensitive Information leak via Script File in TinaCMS CVSS 3.1HIGH 8.6
See all 7 →

Sources