ZeroHour

CVE-2026-63506

niche

Tenant-boundary authorization bypass in Tina CMS self-hosted auth packages

CVSS 3.1
8.8 high
EPSS
Published
()
Modified
AI analysis

CVE-2026-63506 is an authorization bypass (CWE-639) in the self-hosted authentication logic of Tina, a headless CMS: the isAuthorized function in @tinacms/auth and next-tinacms-azure accepts a request-controlled clientID and validates the bearer token against that attacker-chosen TinaCloud app instead of the victim site's configured app. An attacker holding any valid TinaCloud account can submit their own app ID and token to a victim endpoint, causing TinaCloudBackendAuthProvider or affected media authorization callbacks to accept the attacker as verified across the tenant boundary. Successful exploitation permits listing, reading, uploading, or deleting media and, where TinaCloudBackendAuthProvider is used, GraphQL create, read, update, and delete operations on the victim's content, with no victim account or interaction required. Only self-hosted Tina deployments using @tinacms/auth prior to 1.1.4 or next-tinacms-azure prior to 15.0.1 are affected. No public proof-of-concept or confirmed in-the-wild exploitation is known, and the issue is not listed in CISA KEV.

What to do: Upgrade to @tinacms/auth 1.1.4 or later and next-tinacms-azure 15.0.1 or later, verifying the resolved versions in your lockfile (package-lock.json / yarn.lock). As an interim mitigation, restrict network access to Tina API and media routes and reject client-supplied clientID values in authorization checks. Review media and content audit logs for unexpected tokens or GraphQL mutations from unfamiliar TinaCloud apps that could indicate cross-tenant access.

Affected
Tina (TinaCMS) @tinacms/auth (npm package)all versions prior to 1.1.4
Tina (TinaCMS) next-tinacms-azure (npm package)all versions prior to 15.0.1
Estimated exposure
nichelikely low thousands of self-hosted Tina sites at most (estimate; no public install-count or internet-scan data available) — Tina is a niche developer-oriented headless CMS, and only the subset of self-hosted deployments that use the @tinacms/auth or next-tinacms-azure packages for request authorization is exposed, implying an affected population in the low…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Tina is a headless content management system. Prior to @tinacms/auth 1.1.4 and next-tinacms-azure 15.0.1, isAuthorized accepts a request-controlled clientID and asks isUserAuthorized to validate the bearer token against that selected TinaCloud app instead of the self-hosted site's configured app. An attacker with any TinaCloud account can submit the attacker's own app ID and valid token to a victim endpoint, causing TinaCloudBackendAuthProvider or an affected media authorized callback to accept the attacker's verified status across the tenant boundary. The vulnerable logic is present in packages/@tinacms/auth/src/index.ts and packages/next-tinacms-azure/src/auth.ts. Successful exploitation permits media listing, reading, upload, or deletion and, when TinaCloudBackendAuthProvider is used, GraphQL read, create, update, and delete operations on the victim's content without a victim account or victim interaction. This vulnerability is fixed in @tinacms/auth 1.1.4 and next-tinacms-azure 15.0.1.

Weakness
CWE-639
Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.