[ CVE-2026-108259 · Published 9 Oct 2026 ]

Tina: Code injection via unescaped Git branch name in generated client source

CVSS 8.2 EPSS <1%Fix available

[ Why it matters ]Priority signals

  • Public proof-of-concept exploit exists (CISA SSVC)

[ Description ]Official description

Tina is a headless content management system. Prior to 3.0.0, @tinacms/cli reads Git branch values from VERCEL_GIT_COMMIT_REF, GITHUB_BRANCH, or HEAD, incorporates the raw value into the API URL, and interpolates that URL into JavaScript string literals in packages/@tinacms/cli/src/next/codegen/index.ts and packages/@tinacms/cli/src/next/codegen/codegen/plugin.ts. A crafted Git-valid branch name containing a quote can terminate the generated string and inject an expression that executes when the generated client module is imported during a preview build. The injected code runs with the build process privileges and can read environment credentials, modify deployment artifacts, or make network requests. This issue is fixed in version 3.0.0.

[ Fixes ]Fixes and patches

  • @tinacms/cli 3.0.0Fixed version · GitHub Advisories · npm package @tinacms/cli: upgrade to 3.0.0 or later (affected <= 2.7.0)

[ Packages ]Affected open-source packages