tinacms-cli

Ecosystem: npm

Downloads: 275.43 K

Vulnerabilities from the last (months)
  • 1CriticalAffects 1 version
  • 6HighAffects 6 versions
  • 0MediumAffects 0 versions
  • 2ModerateAffects 2 versions
  • 0LowAffects 0 versions
Severity distribution (all time)
9vulnerabilities
  • Critical1 (11.1%)
  • High6 (66.7%)
  • Medium0 (0.0%)
  • Moderate2 (22.2%)
  • Low0 (0.0%)

Monthly breakdown

  • Critical
  • High
  • Medium
  • Moderate
  • Low
  • 1 vulnerabilities
    • Critical: 0
    • High: 1
    • Medium: 0
    • Moderate: 0
    • Low: 0
  • 1 vulnerabilities
    • Critical: 0
    • High: 0
    • Medium: 0
    • Moderate: 1
    • Low: 0
  • 1 vulnerabilities
    • Critical: 0
    • High: 1
    • Medium: 0
    • Moderate: 0
    • Low: 0
  • 3 vulnerabilities
    • Critical: 1
    • High: 1
    • Medium: 0
    • Moderate: 1
    • Low: 0
  • 1 vulnerabilities
    • Critical: 0
    • High: 1
    • Medium: 0
    • Moderate: 0
    • Low: 0
  • 1 vulnerabilities
    • Critical: 0
    • High: 1
    • Medium: 0
    • Moderate: 0
    • Low: 0
  • 1 vulnerabilities
    • Critical: 0
    • High: 1
    • Medium: 0
    • Moderate: 0
    • Low: 0

Vulnerabilities (9)

Known vulnerabilities affecting tinacms-cli, based on data from OSV.

Vulnerabilities affecting tinacms-cli
IDSeveritySummaryAffected versionsPublishedSource
GHSA-pwhx-cvv3-qj5cHighTina: Code injection via unescaped Git branch name in generated client source### Summary `@tinacms/cli` inserts the raw Git branch value into the generated `client.ts` source without escaping or encoding. A Git-valid branch name can close the string literal and inject an arbitrary JavaScript expression that executes when the consumer build imports the generated client module. ### Affected component - **Source (branch read):** `packages/@tinacms/cli/src/cmds/init/templates/config.ts` lines 155–172 — reads `VERCEL_GIT_COMMIT_REF`, `GITHUB_BRANCH`, or `HEAD` into `config.branch` - **Transform (URL build):** `packages/@tinacms/cli/src/next/codegen/index.ts` lines 219–25
  • < 3.0.0
GitHub (opens in a new tab)
GHSA-rgr9-r7mj-mf6xModerateTina: Cross-origin `POST /media/upload/*` requests can write arbitrary files into the Tina dev server media root### Summary A browser-based cross-origin request flaw in the Tina dev server allows an attacker-controlled website to cause arbitrary file creation inside the configured media upload directory on a developer machine running `tinacms dev`. No manual file upload is required. The attacker page builds the multipart request in JavaScript and sends it directly to the local Tina server. The browser blocks access to the response because of CORS, but the server still processes the request and writes the file. ### Details The issue is in the dev server path of `@tinacms/cli`. The Vite dev server insta
  • < 2.5.2
GitHub (opens in a new tab)
GHSA-4936-9hrh-qqpwHigh@tinacms/cli: Remote Code Execution in @tinacms/cli via Forestry migration — unsanitised __TINA_INTERNAL__ marker in user-controlled YAML labels## Description ### Summary `@tinacms/cli` contains a Remote Code Execution vulnerability in its Forestry-to-Tina migration command. The internal helper `addVariablesToCode` unquotes any value matching the marker `"__TINA_INTERNAL__:::(.*?):::"` inside the stringified collection JSON. User-supplied `label` and `name` fields from `.forestry/**/*.yml` are placed into that JSON without any sanitisation. An attacker who controls a Forestry-style project can therefore inject arbitrary JavaScript into the generated `tina/templates.{ts,js}` file. The injected code is written at module top level, so
  • < 2.4.3
GitHub (opens in a new tab)
GHSA-2f24-mg4x-534qHighTinaCMS Vulnerable to Path Traversal Leading to Arbitrary File Read, Write and Delete## Summary The TinaCMS CLI development server exposes media endpoints that are vulnerable to path traversal, allowing attackers to read and write arbitrary files on the filesystem outside the intended media directory. ## Details When running tinacms dev, the CLI starts a local HTTP server (default port 4001) exposing endpoints such as: - /media/list/* - /media/upload/* - /media/* These endpoints process user-controlled path segments using decodeURI() and path.join() without validating that the resolved path remains within the configured media directory. ### Vulnerable code ``` bb.on('fil
  • < 2.1.8
GitHub (opens in a new tab)
GHSA-8pw3-9m7f-q734CriticalTinaCMS CLI Dev Server Vulnerable to Cross-Origin File Exfiltration via CORS Misconfiguration + Path Traversal in TinaCMS## Summary The TinaCMS CLI dev server combines a permissive CORS configuration (Access-Control-Allow-Origin: *) with the path traversal vulnerability (previously reported) to enable a browser-based drive-by attack. A remote attacker can enumerate the filesystem, write arbitrary files, and delete arbitrary files on developer's machines by simply tricking them into visiting a malicious website while tinacms dev is running. ## Details The TinaCMS dev server sets permissive CORS headers that allow **any origin** to make cross-origin requests: - packages/@tinacms/cli/src/server/server.ts: ``` a
  • < 2.1.8
GitHub (opens in a new tab)
GHSA-m48g-4wr2-j2h6ModerateTinaCMS CLI has Arbitrary File Read via Disabled Vite Filesystem Restriction## Summary The TinaCMS CLI dev server configures Vite with `server.fs.strict: false`, which disables Vite's built-in filesystem access restriction. This allows any unauthenticated attacker who can reach the dev server to read arbitrary files on the host system ## Details When running `tinacms dev`, the CLI starts a Vite dev server configured in: `packages/@tinacms/cli/src/next/vite/index.ts` ``` server: { host: configManager.config?.build?.host ?? false, ... fs: { strict: false, // Disables Vite's filesystem access restriction }, }, ``` TinaCMS middleware only intercepts specific
  • < 2.1.8
GitHub (opens in a new tab)
GHSA-529f-9qwm-9628Hightinacms is vulnerable to arbitrary code execution### Summary ```tinacms``` uses the ```gray-matter``` package in an insecure way allowing attackers that can control the content of the processed markdown files, e.g., blog posts, to execute arbitrary code. ### Details The ```gray-matter``` package executes by default the code in the markdown file's front matter. ```tinacms``` does not change this behavior when process markdown file, e.g., by passing a custom engine property for js/javascript in the options object. ### PoC 1. Create a tinacms app using the cli/documentation: ``` npx create-tina-app@latest ``` 2. Modify one of the blog posts
  • < 2.0.4
GitHub (opens in a new tab)
GHSA-4qrm-9h4r-v2fxHighTina search token leak via lock file in TinaCMS### Impact Tina search token leaked via lock file (tina-lock.json) in TinaCMS. Sites building with @tinacms/cli < 1.6.2 that use a search token are impacted. If your Tina-enabled website has search setup, you should rotate that key immediately. ### Patches This issue has been patched in @tinacms/cli@1.6.2 ### Workarounds Upgrading, and rotating search token is required for the proper fix. ### References https://github.com/tinacms/tinacms/pull/4758
  • < 1.6.2
GitHub (opens in a new tab)
GHSA-pc2q-jcxq-rjrrHighSensitive Information leak via Script File in TinaCMS### Impact Sensitive Information leaked via script File in TinaCMS. Sites building with @tinacms/cli >= 1.0.0 && < 1.0.9 that store sensitive values in process.env var are impacted. If you're on a version prior to 1.0.0 this vulnerability does not affect you. If your Tina-enabled website has sensitive credentials stored as environment variables (eg. Algolia API keys) you should rotate those keys immediately. ### Patches This issue has been patched in @tinacms/cli@1.0.9 ### Workarounds Upgrading, and rotating secure & exposed keys is required for the proper fix. ### References https://g
  • >= 1.0.0, < 1.0.9
GitHub (opens in a new tab)
  • GHSA-pwhx-cvv3-qj5cHigh
    Tina: Code injection via unescaped Git branch name in generated client source
    • < 3.0.0

    ### Summary `@tinacms/cli` inserts the raw Git branch value into the generated `client.ts` source without escaping or encoding. A Git-valid branch name can close the string literal and inject an arbitrary JavaScript expression that executes when the consumer build imports the generated client module. ### Affected component - **Source (branch read):** `packages/@tinacms/cli/src/cmds/init/templates/config.ts` lines 155–172 — reads `VERCEL_GIT_COMMIT_REF`, `GITHUB_BRANCH`, or `HEAD` into `config.branch` - **Transform (URL build):** `packages/@tinacms/cli/src/next/codegen/index.ts` lines 219–25

    CVE: CVE-2026-108259

  • GHSA-rgr9-r7mj-mf6xModerate
    Tina: Cross-origin `POST /media/upload/*` requests can write arbitrary files into the Tina dev server media root
    • < 2.5.2

    ### Summary A browser-based cross-origin request flaw in the Tina dev server allows an attacker-controlled website to cause arbitrary file creation inside the configured media upload directory on a developer machine running `tinacms dev`. No manual file upload is required. The attacker page builds the multipart request in JavaScript and sends it directly to the local Tina server. The browser blocks access to the response because of CORS, but the server still processes the request and writes the file. ### Details The issue is in the dev server path of `@tinacms/cli`. The Vite dev server insta

    CVE: CVE-2026-63123

  • GHSA-4936-9hrh-qqpwHigh
    @tinacms/cli: Remote Code Execution in @tinacms/cli via Forestry migration — unsanitised __TINA_INTERNAL__ marker in user-controlled YAML labels
    • < 2.4.3

    ## Description ### Summary `@tinacms/cli` contains a Remote Code Execution vulnerability in its Forestry-to-Tina migration command. The internal helper `addVariablesToCode` unquotes any value matching the marker `"__TINA_INTERNAL__:::(.*?):::"` inside the stringified collection JSON. User-supplied `label` and `name` fields from `.forestry/**/*.yml` are placed into that JSON without any sanitisation. An attacker who controls a Forestry-style project can therefore inject arbitrary JavaScript into the generated `tina/templates.{ts,js}` file. The injected code is written at module top level, so

    CVE: CVE-2026-54074

  • GHSA-2f24-mg4x-534qHigh
    TinaCMS Vulnerable to Path Traversal Leading to Arbitrary File Read, Write and Delete
    • < 2.1.8

    ## Summary The TinaCMS CLI development server exposes media endpoints that are vulnerable to path traversal, allowing attackers to read and write arbitrary files on the filesystem outside the intended media directory. ## Details When running tinacms dev, the CLI starts a local HTTP server (default port 4001) exposing endpoints such as: - /media/list/* - /media/upload/* - /media/* These endpoints process user-controlled path segments using decodeURI() and path.join() without validating that the resolved path remains within the configured media directory. ### Vulnerable code ``` bb.on('fil

    CVE: CVE-2026-28793

  • GHSA-8pw3-9m7f-q734Critical
    TinaCMS CLI Dev Server Vulnerable to Cross-Origin File Exfiltration via CORS Misconfiguration + Path Traversal in TinaCMS
    • < 2.1.8

    ## Summary The TinaCMS CLI dev server combines a permissive CORS configuration (Access-Control-Allow-Origin: *) with the path traversal vulnerability (previously reported) to enable a browser-based drive-by attack. A remote attacker can enumerate the filesystem, write arbitrary files, and delete arbitrary files on developer's machines by simply tricking them into visiting a malicious website while tinacms dev is running. ## Details The TinaCMS dev server sets permissive CORS headers that allow **any origin** to make cross-origin requests: - packages/@tinacms/cli/src/server/server.ts: ``` a

    CVE: CVE-2026-28792

  • GHSA-m48g-4wr2-j2h6Moderate
    TinaCMS CLI has Arbitrary File Read via Disabled Vite Filesystem Restriction
    • < 2.1.8

    ## Summary The TinaCMS CLI dev server configures Vite with `server.fs.strict: false`, which disables Vite's built-in filesystem access restriction. This allows any unauthenticated attacker who can reach the dev server to read arbitrary files on the host system ## Details When running `tinacms dev`, the CLI starts a Vite dev server configured in: `packages/@tinacms/cli/src/next/vite/index.ts` ``` server: { host: configManager.config?.build?.host ?? false, ... fs: { strict: false, // Disables Vite's filesystem access restriction }, }, ``` TinaCMS middleware only intercepts specific

    CVE: CVE-2026-29066

  • GHSA-529f-9qwm-9628High
    tinacms is vulnerable to arbitrary code execution
    • < 2.0.4

    ### Summary ```tinacms``` uses the ```gray-matter``` package in an insecure way allowing attackers that can control the content of the processed markdown files, e.g., blog posts, to execute arbitrary code. ### Details The ```gray-matter``` package executes by default the code in the markdown file's front matter. ```tinacms``` does not change this behavior when process markdown file, e.g., by passing a custom engine property for js/javascript in the options object. ### PoC 1. Create a tinacms app using the cli/documentation: ``` npx create-tina-app@latest ``` 2. Modify one of the blog posts

    CVE: CVE-2025-68278

  • GHSA-4qrm-9h4r-v2fxHigh
    Tina search token leak via lock file in TinaCMS
    • < 1.6.2

    ### Impact Tina search token leaked via lock file (tina-lock.json) in TinaCMS. Sites building with @tinacms/cli < 1.6.2 that use a search token are impacted. If your Tina-enabled website has search setup, you should rotate that key immediately. ### Patches This issue has been patched in @tinacms/cli@1.6.2 ### Workarounds Upgrading, and rotating search token is required for the proper fix. ### References https://github.com/tinacms/tinacms/pull/4758

    CVE: CVE-2024-45391

  • GHSA-pc2q-jcxq-rjrrHigh
    Sensitive Information leak via Script File in TinaCMS
    • >= 1.0.0, < 1.0.9

    ### Impact Sensitive Information leaked via script File in TinaCMS. Sites building with @tinacms/cli >= 1.0.0 && < 1.0.9 that store sensitive values in process.env var are impacted. If you're on a version prior to 1.0.0 this vulnerability does not affect you. If your Tina-enabled website has sensitive credentials stored as environment variables (eg. Algolia API keys) you should rotate those keys immediately. ### Patches This issue has been patched in @tinacms/cli@1.0.9 ### Workarounds Upgrading, and rotating secure & exposed keys is required for the proper fix. ### References https://g

    CVE: CVE-2023-25164

Showing 1-9 of 9 vulnerabilities