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.
Published: 2026-04-01
Score: 7.1 High
EPSS: < 1% Very Low
KEV: No
Impact: Unrestricted File Access
Action: Immediate Patch
AI Analysis

Impact

Tina CMS provides media endpoints that validate requested paths by string comparison only. This flaw allows an attacker to supply a file name such as pivot/written-from-media.txt that points to an existing symbolic link or junction outside the intended media directory. Because the code does not resolve symlink targets, system file operations are performed through the link, enabling out‑of‑root file listing, reading, writing, and deletion. The weakness is a classic directory traversal (CWE‑22) amplified by improper path resolution (CWE‑59).

Affected Systems

All releases of @tinacms/cli older than version 2.2.2 are affected. The vulnerability is present in the Tina CMS “tinacms” product, which uses the command‑line interface component for media handling.

Risk and Exploitability

The CVSS score of 7.1 signals high severity, while the EPSS probability of less than 1% indicates a low likelihood of exploitation in the wild. The issue is not listed in the CISA KEV catalog. Exploitation requires an attacker to influence the media request with a crafted file path; this can be achieved by a user with permission to create or alter symbolic links in the media root or by an attacker who controls the input to the media API. If the API is exposed to unauthenticated clients, remote exploitation is straightforward; restricting access or removing link traversal vulnerabilities mitigates the risk.

Generated by OpenCVE AI on April 7, 2026 at 22:37 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Tina CMS @tinacms/cli package to version 2.2.2 or newer.
  • Verify that the media directory does not contain any symbolic links or junctions that point outside the intended tree.
  • If such links exist, delete them or apply filesystem permissions to prevent link traversal.
  • Monitor media API logs for unexpected file access patterns and investigate any anomalies.

Generated by OpenCVE AI on April 7, 2026 at 22:37 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-g87c-r2jp-293w @tinacms/graphql's Media Endpoints Can Escape the Media Root via Symlinks or Junctions
History

Tue, 07 Apr 2026 20:45:00 +0000

Type Values Removed Values Added
First Time appeared Ssw
Ssw tinacms\/cli
CPEs cpe:2.3:a:ssw:tinacms\/cli:*:*:*:*:*:node.js:*:*
Vendors & Products Ssw
Ssw tinacms\/cli

Thu, 02 Apr 2026 20:30:00 +0000

Type Values Removed Values Added
First Time appeared Tina
Tina tinacms
Vendors & Products Tina
Tina tinacms

Wed, 01 Apr 2026 23:45:00 +0000

Type Values Removed Values Added
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.
Title @tinacms/graphql's Media Endpoints Can Escape the Media Root via Symlinks or Junctions
Weaknesses CWE-22
CWE-59
References
Metrics cvssV3_1

{'score': 7.1, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:L'}

ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-04-01T17:54:25.006Z

Reserved: 2026-03-30T17:15:52.500Z

Link: CVE-2026-34603

cve-icon Vulnrichment

Updated: 2026-04-01T17:53:17.400Z

cve-icon NVD

Status : Analyzed

Published: 2026-04-01T17:28:41.120

Modified: 2026-04-07T19:13:12.523

Link: CVE-2026-34603

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-04-08T19:57:04Z

Weaknesses