TinaCMS admin preview iframe loads an attacker-controlled origin from the URL fragment (tinacms tinacms)

CVE-2026-108261
CRITICAL 9.3

At a glance

Source
NVD
EPSS
EPSS 0.20 % Β· percentile 9 ()
State
PUBLISHED
Published
Updated
Assigner
GitHub_M
NVD status
Deferred

Description

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.

Weaknesses (CWE)

  • CWE-346 β€” Origin Validation Error
  • CWE-441 β€” Unintended Proxy or Intermediary
  • CWE-601 β€” URL Redirection to Untrusted Site

References

Scores

VersionScoreVectorScored by
CVSS 3.1CRITICAL 9.3CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:NGitHub_M
CVSS 3.1CRITICAL 9.3CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:NNVD Β· security-advisories@github.com (Secondary)

Advisories

European references

Affected products

ProductVersions
tinacms Β· tinacmsaffected < 3.14.0
@tinacms Β· appaffected < 2.5.14

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST β€” attribution requested
ENISA EUVDENISA β€” reproduction authorised, source acknowledged
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain β€” this product uses data from the NVD API but is not endorsed or certified by the NVD