CVE-2026-55660
Deferred Deferred - Pending Action

Stored XSS in TinaCMS Content Management System

Vulnerability report for CVE-2026-55660, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-01

Last updated on: 2026-07-02

Assigner: GitHub, Inc.

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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-01
Last Modified
2026-07-02
Generated
2026-07-22
AI Q&A
2026-07-02
EPSS Evaluated
2026-07-20
NVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
tinacms app to 2.5.6 (exc)
tinacms tinacms to 3.9.3 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-940 The product establishes a communication channel to handle an incoming request that has been initiated by an actor, but it does not properly verify that the request is coming from the expected origin.
CWE-79 The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.
CWE-601 The web application accepts a user-controlled input that specifies a link to an external site, and uses that link in a redirect.
CWE-346 The product does not properly verify that the source of data or communication is valid.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability affects Tina, a headless content management system, in versions prior to @tinacms/app 2.5.6 and tinacms 3.9.3. It involves cross-origin postMessage handlers and a rich-text URL-sanitization bypass that enable stored cross-site scripting (XSS) and session takeover.

The issue arises because the library registers window message listeners that act on event.data without verifying the origin or source of the message, and it posts messages using non-specific target origins. Additionally, insufficient URL sanitization in rich-text content allows malicious URLs to persist and execute.

An attacker can exploit this by forging messages to manipulate the editor, inject preview content, or interfere with the OAuth popup channel, potentially taking over an authenticated editing session.

This vulnerability has been fixed in versions @tinacms/app 2.5.6 and tinacms 3.9.3.

Detection Guidance

This vulnerability involves cross-origin postMessage handlers in TinaCMS that do not verify event origins or sources, allowing attackers to forge messages. Detection involves monitoring for suspicious or unexpected postMessage events that originate from untrusted sources or domains.

To detect exploitation attempts on your system or network, you can inspect browser console logs or network traffic for unusual postMessage activity, especially messages sent to or from TinaCMS editor windows or OAuth popup handlers.

Suggested commands or approaches include:

  • Using browser developer tools to monitor window.postMessage events and check their origin and source.
  • Using JavaScript in the browser console to override or hook into window.addEventListener('message') to log event.origin and event.data for suspicious messages.
  • Network traffic analysis tools (e.g., Wireshark) to capture and analyze WebSocket or HTTP traffic related to TinaCMS editor or OAuth popup communications.
  • Searching application logs for unexpected or malformed GraphQL requests or preview content injections.

No specific command-line commands are provided in the available resources, but monitoring and logging message events and network traffic related to TinaCMS components is recommended.

Impact Analysis

This vulnerability can lead to stored cross-site scripting (XSS) attacks and session takeover.

An attacker can manipulate the content management system's editor, inject malicious preview content, or hijack the OAuth authentication popup channel.

As a result, an attacker may gain unauthorized access to an authenticated editing session, potentially allowing them to modify content, steal sensitive information, or perform actions on behalf of the legitimate user.

Compliance Impact

The vulnerability in TinaCMS allows attackers to perform stored cross-site scripting (XSS) and session takeover by exploiting insufficient validation of cross-origin postMessage handlers and poor URL sanitization. This can lead to unauthorized access to authenticated editing sessions and injection of malicious content.

Such unauthorized access and data manipulation could potentially lead to violations of data protection regulations like GDPR and HIPAA, which require strict controls over user data confidentiality, integrity, and session security.

However, the provided information does not explicitly discuss compliance impacts or specific regulatory consequences.

Mitigation Strategies

To mitigate this vulnerability, upgrade Tina CMS to versions @tinacms/app 2.5.6 or later and tinacms 3.9.3 or later, where the issue has been fixed.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-55660. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart