Description
Tina is a headless content management system. In versions prior to @tinacms/app 2.5.6 and tinacms 3.9.3, cross-origin postMessage handlers and a rich-text URL-sanitization bypass enable stored XSS and session takeover. The library registers window message listeners — the useTina overlay handler, the OAuth authentication popup handler, and the admin↔preview iframe GraphQL reducer — that act on event.data without verifying event.origin or event.source and post messages using non-specific target origins, while insufficient URL sanitization in rich-text content allows malicious URLs to persist and execute. A page the victim visits (or a window in an opener/iframe relationship with a Tina admin) can forge messages to drive the editor, inject preview content, or observe/forge the OAuth popup channel to take over an authenticated editing session. This issue has been fixed in versions @tinacms/app 2.5.6 and tinacms 3.9.3.
Published: 2026-07-01
Score: 7.6 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Tina is a headless content management system. In versions prior to @tinacms/app 2.5.6 and tinacms 3.9.3, cross‑origin postMessage handlers and a rich‑text URL‑sanitization bypass enable stored XSS and session takeover. The library registers window message listeners— the useTina overlay handler, the OAuth authentication popup handler, and the admin↔preview iframe GraphQL reducer—that act on event.data without verifying event.origin or event.source and post messages using non‑specific target origins, while insufficient URL sanitization in rich‑text content allows malicious URLs to persist and execute. A page the victim visits (or a window in an opener/iframe relationship with a Tina admin) can forge messages to drive the editor, inject preview content, or observe/forge the OAuth popup channel to take over an authenticated editing session. This issue has been fixed in versions @tinacms/app 2.5.6 and tinacms 3.9.3.

Affected Systems

The affected products are the TinaCMS libraries @tinacms/app and tinacms. All releases before @tinacms/app 2.5.6 and tinacms 3.9.3 are vulnerable.

Risk and Exploitability

The vulnerability has a CVSS score of 7.6, indicating a high impact if exploited. The EPSS score is < 1%, which indicates a very low but non‑zero probability of exploitation. The issue has not been listed in CISA’s KEV catalog, suggesting it is not a known widespread exploit at the time of analysis. The likely attack vector is a malicious site or a page in an opener/iframe relationship that can forge messages to the Tina editor, inject malicious URL content, or hijack the OAuth authentication flow, resulting in arbitrary code execution in the user’s browser context editing sessions.

Generated by OpenCVE AI on July 21, 2026 at 13:16 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to @tinacms/app version 2.5.6 or later and tinacms version 3.9.3 or later to apply the vendor fix.
  • If an upgrade is not immediately feasible, modify the application to validate event.origin and event.source before processing postMessage data, and limit postMessage targets to trusted origins only.
  • Address the rich‑text URL sanitization by implementing a whitelist that permits only safe schemes (e.g., https, mailto) and strips or encodes other URLs before rendering.

Generated by OpenCVE AI on July 21, 2026 at 13:16 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-g5qx-h5f3-mp2f TinaCMS: Cross-origin postMessage handlers and rich-text URL-sanitization bypass enable stored XSS and session takeover
History

Thu, 02 Jul 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Wed, 01 Jul 2026 21:15:00 +0000

Type Values Removed Values Added
Description Tina is a headless content management system. In versions prior to @tinacms/app 2.5.6 and tinacms 3.9.3, cross-origin postMessage handlers and a rich-text URL-sanitization bypass enable stored XSS and session takeover. The library registers window message listeners — the useTina overlay handler, the OAuth authentication popup handler, and the admin↔preview iframe GraphQL reducer — that act on event.data without verifying event.origin or event.source and post messages using non-specific target origins, while insufficient URL sanitization in rich-text content allows malicious URLs to persist and execute. A page the victim visits (or a window in an opener/iframe relationship with a Tina admin) can forge messages to drive the editor, inject preview content, or observe/forge the OAuth popup channel to take over an authenticated editing session. This issue has been fixed in versions @tinacms/app 2.5.6 and tinacms 3.9.3.
Title TinaCMS: Cross-origin postMessage handlers and rich-text URL-sanitization bypass enable stored XSS and session takeover
Weaknesses CWE-346
CWE-601
CWE-79
CWE-940
References
Metrics cvssV4_0

{'score': 7.6, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-02T12:43:47.881Z

Reserved: 2026-06-17T00:05:03.777Z

Link: CVE-2026-55660

cve-icon Vulnrichment

Updated: 2026-07-02T12:43:43.975Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-21T13:30:07Z

Weaknesses
  • CWE-346

    Origin Validation Error

  • CWE-601

    URL Redirection to Untrusted Site ('Open Redirect')

  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

  • CWE-940

    Improper Verification of Source of a Communication Channel