The vulnerability, CVE-2026-63506, is a broken access control issue in TinaCMS. The root cause is that the authorization logic in the isAuthorized function, present in both @tinacms/auth and next-tinacms-azure packages, incorrectly trusted a clientID provided in the request URL. This allowed an attacker to use a valid authentication token for an application they control to gain access to a victim's application, as the validation was performed against the attacker-supplied clientID instead of the victim's site-specific clientID.
The analysis of the patch commit 0a927a4f8d228dd05ee7ca4be32899bc190e73af confirms this. The changes in packages/@tinacms/auth/src/index.ts and packages/next-tinacms-azure/src/auth.ts modify the isAuthorized function to no longer extract the clientID from the request. Instead, it now requires the site's actual clientID to be passed as an argument (expectedClientID) or be available as an environment variable (process.env.NEXT_PUBLIC_TINA_CLIENT_ID).
Furthermore, the TinaCloudBackendAuthProvider in @tinacms/auth was updated to pass this clientID to the isAuthorized function, thus closing the security hole. The vulnerable functions are isAuthorized in both affected packages, as they contained the flawed logic, and TinaCloudBackendAuthProvider which facilitated the use of the vulnerable function in a way that exposed the system.