Read the docs

TinaCMS admin preview frames attacker-controlled origin

Priority HIGH 75CWE-346Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
Required
Attack complexity
Low
Impact type
Security bypass, Spoofing
Confidentiality · integrity · availability
High · High · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-346 and CWE-601.

Summary

TinaCMS before 3.14.0 and @tinacms/app before 2.5.14 derive a trusted preview origin from the admin preview URL. An unauthenticated attacker can send a crafted link to a signed-in editor, making the admin frame an attacker origin as the trusted preview (CWE-346). The frame can then send GraphQL reads or mutations that run with the editor's credentials, exposing or modifying protected content.

Written with Claude Haiku 5.5 from the sources below · 2026-10-29

Description from the CNA

Tina is a headless content management system. Prior to tinacms 3.14.0 and @tinacms/app 2.5.14, the /~/* admin preview route in packages/tinacms/src/admin/index.tsx can turn an attacker-controlled hash-router splat into an off-origin iframe URL through packages/@tinacms/app/src/preview.tsx, while packages/@tinacms/app/src/lib/preview-origin.ts derives expectedOrigin from that same URL for the GraphQL message channel in packages/@tinacms/app/src/lib/graphql-reducer.ts. An unauthenticated attacker can send a crafted link to a signed-in editor, cause the admin to frame an attacker origin, and have that frame treated as the trusted preview. The attacker-controlled frame can submit GraphQL reads or mutations that the admin executes with the editor credentials, exposing or modifying protected content. This issue is fixed in tinacms 3.14.0 and @tinacms/app 2.5.14.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00197 9th percentileScored 2026-11-07
Fix Fixed tinacms (tinacms): 3.14.0app (@tinacms): 2.5.14+2 more products

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 3.14.03.14.0Patch availableCNA
tinacmsappbefore 2.5.142.5.14Patch availableCNA
—tinacms (npm)before 3.14.03.14.0Patch availableGHSA-x34j-47hf-4xg7
—@tinacms/app (npm)before 2.5.142.5.14Patch availableGHSA-x34j-47hf-4xg7
  • tinacms Vendortinacms Affected before 3.14.0 Fixed in 3.14.0 Patch available CNA
  • app Vendortinacms Affected before 2.5.14 Fixed in 2.5.14 Patch available CNA
  • tinacms (npm) Vendor— Affected before 3.14.0 Fixed in 3.14.0 Patch available GHSA-x34j-47hf-4xg7
  • @tinacms/app (npm) Vendor— Affected before 2.5.14 Fixed in 2.5.14 Patch available GHSA-x34j-47hf-4xg7

Remediation

Update tinacms to 3.14.0 and @tinacms/app to 2.5.14, the fixed versions for each product.

Written with Claude Haiku 5.5 from the sources below · 2026-10-29

  • Fix · CNA tinacms (tinacms) Fixed in 3.14.0
  • Fix · CNA app (@tinacms) Fixed in 2.5.14
  • Fix · GHSA-x34j-47hf-4xg7 tinacms (npm) Fixed in 3.14.0 Advisory →
  • Fix · GHSA-x34j-47hf-4xg7 @tinacms/app (npm) Fixed in 2.5.14 Advisory →

Timeline

  1. 2026-10-10 Threatist record created from CVE-2026-108261
  2. 2026-10-10 Alias added: GHSA-x34j-47hf-4xg7
  3. 2026-10-10 Fix available: npm/@tinacms/[email protected], npm/[email protected] · GHSA-x34j-47hf-4xg7
  4. 2026-10-10 CVSS score added · GHSA-x34j-47hf-4xg7
  5. 2026-10-10 Weakness changed · GHSA-x34j-47hf-4xg7
  6. 2026-10-10 6 new references · GHSA-x34j-47hf-4xg7
  7. 2026-10-11 Priority changed: MEDIUM → LOW
  8. 2026-10-13 CISA SSVC decision points changed
  9. 2026-10-13 Priority changed: LOW → HIGH

References

  • TI-2026-22987 Cross-Origin File Exfiltration via CORS Misconfiguration + Path Traversal in TinaCMS CVSS 3.1CRITICAL 9.7
  • TI-2026-45239 Tina: [Broken Access Control] letting any TinaCloud user authorize against any self-hosted site CVSS 3.1HIGH 8.8
  • TI-2026-26851 @tinacms/graphql's `FilesystemBridge` Path Validation Can Be Bypassed via Symlinks or Junctions CVSS 3.1HIGH 8.8
  • TI-2026-22988 Path Traversal Leading to Arbitrary File Read, Write and Delete in TinaCMS CVSS 3.1HIGH 8.4
  • TI-2026-70293 Code injection in Tina CLI via unescaped Git branch name CVSS 3.1HIGH 8.2
  • TI-2026-26850 @tinacms/graphql's Media Endpoints Can Escape the Media Root via Symlinks or Junctions CVSS 3.1HIGH 8.3
See all 19 →

Sources