CVE-2025-68278: TinaCMS arbitrary code execution in markdown frontmatter

CVE-2025-68278 · Severity: high · CVSS 8.8 · Published 2025-12-18

TinaCMS is an open-source headless CMS that processes markdown files for content management. The application insecurely handles markdown frontmatter parsing, allowing attackers who can control markdown file content (such as blog posts or uploaded files) to execute arbitrary JavaScript code on the server, resulting in complete system compromise.

Technologies: @tinacms/cli (npm), @tinacms/graphql (npm), tinacms (npm). Vendors: npm.

Quick answers

Is CVE-2025-68278 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2025-68278 being exploited in the wild.
How severe is CVE-2025-68278?
High severity, with a CVSS score of 8.8, published 18 December 2025.
Which products and versions are affected?
@tinacms/cli (npm) SEMVER:introduced=0,fixed=2.0.4; @tinacms/graphql (npm) SEMVER:introduced=0,fixed=2.0.3; tinacms (npm) SEMVER:introduced=0,fixed=3.1.1.
Is there a fix for CVE-2025-68278?
Yes. @tinacms/cli (npm): upgrade to 2.0.4 or later; @tinacms/graphql (npm): upgrade to 2.0.3 or later; tinacms (npm): upgrade to 3.1.1 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2025-68278 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2025-68278?
Check whether you run @tinacms/cli (npm), @tinacms/graphql (npm) or tinacms (npm) 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/cli (npm): upgrade to 2.0.4 or later
    npm install @tinacms/cli@2.0.4
  • @tinacms/graphql (npm): upgrade to 2.0.3 or later
    npm install @tinacms/graphql@2.0.3
  • tinacms (npm): upgrade to 3.1.1 or later
    npm install tinacms@3.1.1

Technical details

TinaCMS uses the gray-matter package to parse markdown files but fails to disable the insecure default behavior of executing JavaScript and CoffeeScript code embedded in frontmatter delimiters (---js, ---javascript, ---coffee). An attacker who can control markdown file content (e.g., via file upload, email-delivered contractor files, or shared cloud folders) can inject malicious JavaScript code in the frontmatter that will be executed server-side when the file is processed. This leads to remote code execution with the privileges of the TinaCMS server process. The vulnerability affects tinacms < 3.1.1, @tinacms/cli < 2.0.4, and @tinacms/graphql < 2.0.3. Patches are available that disable JavaScript and CoffeeScript engine execution while preserving support for safe formats (YAML, TOML, JSON).

Affected products

  • TinaCMS tinacms < 3.1.1
  • TinaCMS @tinacms/cli < 2.0.4
  • TinaCMS @tinacms/graphql < 2.0.3

Identifiers

  • CVE-2025-68278
  • GHSA-529f-9qwm-9628

Timeline

  • 2025-12-18: disclosed: Advisory published
  • 2025-12-18: patched: Security patches released: tinacms 3.1.1, @tinacms/cli 2.0.4, @tinacms/graphql 2.0.3

References

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