CVE-2026-63506
nicheTenant-boundary authorization bypass in Tina CMS self-hosted auth packages
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.
| 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 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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 news0 stories
No ingested article mentions this CVE yet.