Open actionable advisories and recorded vendor fixes. This public package view has no inventory attached and cannot establish whether your deployment is affected. A vendor fix never resolves your finding; verify your installed version and the source guidance.
Open advisories
9 actionable advisories, newest first. Withdrawn advisories and news are excluded. Coverage is partial.
@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 VERCELGITCOMMITREF, GITHUBBRANCH, or HEAD into config.branch - Transform (URL build): packages/@tinacms/cli/src/next/codegen/index.ts lines 219–253 — createApiUrl() concatenates the raw branch into the API URL with no encodeURIComponent - Sink (template): packages/@tinacms/cli/src/next/codegen/index.ts lines 363–381 — genClient() interpolates the URL into url: '${apiURL}' - Sibling sink: packages/@tinacms/cli/src/next/codegen/codegen/plugin.ts line 55 — url: "${apiURL}" (same pattern, double quotes) Root cause The codegen template at index.ts:376 uses: where apiURL contains…
Recommended action: Upgrade to 3.0.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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 installs CORS middleware: For disallowed origins, the origin callback only returns false to the CORS library: That does not reject the request server-side. The same request is still routed into the upload handler: The upload handler then accepts attacker-controlled path and body data and writes the file: This is exploitable because multipart/form-data is a simple browser request and does not require a preflight.…
Recommended action: Upgrade to 2.5.2 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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 "TINAINTERNAL:::(.?):::" 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 it executes the moment the developer runs tinacms dev or tinacms build, with the developer's privileges. Details Vulnerable code path: 1. packages/@tinacms/cli/src/cmds/forestry-migrate/util/index.ts — transformForestryFieldsToTinaFields() writes forestryField.label (and .name) straight into TinaField objects (no sanitisation). 2. packages/@tinacms/cli/src/cmds/forestry-migrate/util/codeTransformer.ts, lines 16-22 — the…
Recommended action: Upgrade to 2.4.3 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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 TinaCMS middleware only intercepts specific route prefixes (/media/, /graphql, /altair, /searchIndex). Any request to a path outside these routes falls through to Vite's default static file handler, which will serve the file directly from the absolute path on the filesystem. Additionally, the server enables permissive CORS (cors() with no origin restriction), which may further facilitate browser-based exploitation such as DNS rebinding attacks. PoC Prerequisites: TinaCMS CLI dev server running (default port 4001). - Read system files directly: <img width="705" height="332" alt="image"…
Recommended action: Upgrade to 2.1.8 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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 PoC Arbitrary File Read Result: <img width="889" height="280" alt="image(1)" src="https://github.com/user-attachments/assets/a878a86a-71db-46ed-abda-3d4ddba692e0" / Arbitrary File Write Result: <img width="1320" height="84" alt="image(8)" src="https://github.com/user-attachments/assets/8bd5046b-0456-474f-ab96-4e18a421997c" / Arbitrary File Delete <img width="1135" height="105" alt="image"…
Recommended action: Upgrade to 2.1.8 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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: - packages/@tinacms/cli/src/next/vite/plugins.ts: When combined with the path traversal vulnerability, this creates a complete attack chain. Attack Scenario Prerequisites 1. Developer runs tinacms dev (default port 4001) 2. Developer visits attacker's website while TinaCMS is running No other conditions required - the dev server doesn't need to be: - Exposed to the internet - Bound to 0.0.0.0 - Accessible outside…
Recommended action: Upgrade to 2.1.8 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
uses the 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 package executes by default the code in the markdown file's front matter. 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: 2. Modify one of the blog posts to contain the following front matter: 3. Start the tinacms server, e.g., with 4. Observe the console of the server printing the password file, showing that attackers can execute arbitrary commands. Impact RCE: attackers can execute arbitrary JavaScript code on the server hosting tinacms. Feasibility Potential attack scenarios can be executed like this: Companies often have technical writers as contractors. These contractors produce md files, which they send over email or upload in a shared cloud folder.…
Recommended action: Upgrade to 2.0.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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
Recommended action: Upgrade to 1.6.2 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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://github.com/tinacms/tinacms/pull/3584
Recommended action: Upgrade to 1.0.9 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.