The root cause of the vulnerability is the use of a shared, hardcoded audience string (mcp-registry) for the GitHub OIDC authentication flow on both the client and server sides. On the client-side (mcp-publisher), the GitHubOIDCProvider.getOIDCTokenFromGitHub function always requested a token from GitHub with audience=mcp-registry, regardless of the actual --registry URL being targeted. The GitHubOIDCProvider.GetToken function orchestrated this flawed request. On the server-side, the GitHubOIDCHandler.ExchangeToken function validated incoming OIDC tokens against the same hardcoded audience. This allowed an OIDC token legitimately obtained for one registry instance to be replayed to another. The target registry would accept the token because the audience matched its static expectation, improperly granting publishing permissions. The patch remediates this by making the audience dynamic and registry-specific. The client now derives the audience from the registry's URL, and the server validates against a per-deployment configuration value, ensuring tokens are bound to a specific registry instance.