CVE-2026-108260: TinaCMS tina-markdown stored XSS via unvalidated link URL scheme

CVE-2026-108260 · Severity: high · CVSS 7.6 · Published 2026-10-09

The tina-markdown web component, used to render rich-text content from TinaCMS on non-React websites, fails to validate URL schemes in link elements. An attacker with content-editing privileges can inject javascript: URLs that execute in visitors' browsers with full access to the site's origin, potentially stealing editor authentication tokens stored in localStorage and compromising any visiting administrator or editor.

Vendors: npm, TinaCMS.

Quick answers

Is CVE-2026-108260 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-108260 being exploited in the wild.
How severe is CVE-2026-108260?
High severity, with a CVSS score of 7.6, published 9 October 2026.
Which products and versions are affected?
@tinacms/web-components (npm) <= 0.2.0, SEMVER:introduced=0,fixed=0.2.1; TinaCMS @Tinacms/Web-Components prior to fix.
Is there a fix for CVE-2026-108260?
Yes. @tinacms/web-components (npm): upgrade to 0.2.1 or later. Until then: Until patched, restrict content-editing permissions to trusted users only, or disable the tina-markdown component and use an alternative rich-text renderer that sanitizes URLs. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-108260 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-108260?
Check whether you run @tinacms/web-components (npm) or TinaCMS @Tinacms/Web-Components at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • @tinacms/web-components (npm): upgrade to 0.2.1 or later
    npm install @tinacms/web-components@0.2.1

Until patched, restrict content-editing permissions to trusted users only, or disable the tina-markdown component and use an alternative rich-text renderer that sanitizes URLs.

Technical details

The vulnerability is a stored XSS in the tina-markdown.js component at line 75, which assigns node.url directly to anchor href attributes without scheme validation. The component uses DOMPurify for HTML nodes but bypasses sanitization for structured link nodes from the TinaCMS content API. All six sibling renderers (React, Astro, MDX) implement sanitizeUrl() to allow only safe schemes (http, https, mailto, tel, xref); tina-markdown is the sole exception. An authenticated content editor can craft a javascript: link that executes in any visitor's browser in the site origin, with access to localStorage containing the tinacms-auth credential.

Affected products

  • TinaCMS @tinacms/web-components prior to fix

Identifiers

  • CVE-2026-108260
  • GHSA-c42q-qvc3-j6vg

Timeline

  • 2026-10-09: disclosed

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.