Description
Tina is a headless content management system. In versions prior to @tinacms/mdx 2.1.7 and tinacms 3.9.3, rich-text parsing and the default link/image renderers did not sanitize the url field on Slate link/image nodes. Content containing javascript: or data:text/html URLs — including case-variant, whitespace-padded, and control-character-obfuscated forms — is rendered into href/src and executes when the content is viewed. Any actor able to author rich-text content (for example a lower-privileged editor, or imported/external content) can achieve stored XSS against editors and site viewers. This issue is fixed in versions @tinacms/mdx 2.1.7 and tinacms 3.9.3.
Published: 2026-07-01
Score: 4.8 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability stems from TinaCMS's rich‑text parsing and default link/image rendering, which, in versions before @tinacms/mdx 2.1.7 and tinacms 3.9.3, do not sanitize the URL field on Slate link and image nodes. Input containing javascript: or data:text/html URLs—including case‑variant, whitespace‑padded, and control‑character‑obfuscated forms—is rendered into href or src attributes and executed when the content is viewed, enabling stored XSS. Any actor able to author rich‑text content, such as lower‑privileged editors or imported/external content, can inject these malicious URLs and compromise editors and site viewers. The flaw is a classic stored XSS (CWE‑79) and involves unsafe handling of protocol schemes (CWE‑87).

Affected Systems

The issue affects installations of the open‑source TinaCMS headless CMS and its @tinacms/mdx component prior to version 2.1.7 and tinacms 3.9.3. Users who can author or import rich‑text content, including lower‑privileged editors, are able to inject the malicious URLs.

Risk and Exploitability

The vulnerability receives a moderate CVSS score of 4.8 and an EPSS score of < 1%, indicating a very low but non‑zero likelihood of exploitation. It is not listed in CISA’s KEV catalog. The flaw, a classic stored XSS (CWE‑79) and involving unsafe protocol handling (CWE‑87), can be triggered by inserting malicious URLs into rich‑text fields, requiring write access to content. Once injected, the payload runs in the browsers of any editor or end user who views the affected page.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade @tinacms/mdx to version 2.1.7 or later.
  • Upgrade tinacms to version 3.9.3 or later.
  • If an upgrade is not yet possible, configure the rich‑text editor to reject or remove javascript: and data:text/html schemes from link and image URLs, or implement a custom renderer that sanitizes these fields before rendering.

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

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-2vcc-5v34-9jc8 TinaCMS rich-text (slatejson) rendering does not sanitize link/image URLs, allowing stored XSS via dangerous URL schemes
History

Mon, 06 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, '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/mdx 2.1.7 and tinacms 3.9.3, rich-text parsing and the default link/image renderers did not sanitize the url field on Slate link/image nodes. Content containing javascript: or data:text/html URLs — including case-variant, whitespace-padded, and control-character-obfuscated forms — is rendered into href/src and executes when the content is viewed. Any actor able to author rich-text content (for example a lower-privileged editor, or imported/external content) can achieve stored XSS against editors and site viewers. This issue is fixed in versions @tinacms/mdx 2.1.7 and tinacms 3.9.3.
Title TinaCMS rich-text (slatejson) rendering does not sanitize link/image URLs, allowing stored XSS via dangerous URL schemes
Weaknesses CWE-79
CWE-87
References
Metrics cvssV4_0

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


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-06T14:39:33.214Z

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

Link: CVE-2026-55661

cve-icon Vulnrichment

Updated: 2026-07-06T14:39:30.272Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

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

Weaknesses
  • CWE-79

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

  • CWE-87

    Improper Neutralization of Alternate XSS Syntax