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

Tina is a headless content management system, and its rich‑text parsing and default link and 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. Content 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 or 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). This issue is fixed in versions @tinacms/mdx 2.1.7 and tinacms 3.9.3.

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 low 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 31, 2026 at 15:25 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 31, 2026 at 15:25 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

Wed, 29 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
First Time appeared Tina
Tina tinacms
Tinacms
Tinacms tinacms/mdx
Vendors & Products Tina
Tina tinacms
Tinacms
Tinacms tinacms/mdx

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'}


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-31T15:30:03Z

Weaknesses
  • CWE-79

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

  • CWE-87

    Improper Neutralization of Alternate XSS Syntax