PT-2026-67316 · Unknown · Better Auth
CVSS v4.0
9.4
Critical
| Vector | AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N |
Name of the Vulnerable Software and Affected Versions
better-auth versions prior to 1.6.11
Description
The
oidcProvider and mcp plugins contain insecure cryptographic defaults. The discovery document advertises the none algorithm in id token signing alg values supported (and resource signing alg values supported for the mcp plugin), which may allow relying parties that perform algorithm negotiation without pinning to a specific signing algorithm to accept unsigned tokens. Additionally, the plugins enable PKCE plain by default. The authorize handler accepts code challenge method=plain or silently downgrades missing code challenge method parameters to plain, which fails to protect authorization codes if the URL is exposed to unauthorized parties. This behavior contradicts the advertised S256 method and violates OAuth 2.1 standards.Recommendations
Upgrade to better-auth version 1.6.11 or later.
Migrate from the deprecated
oidcProvider and mcp plugins to @better-auth/oauth-provider.
As a temporary workaround, set oidcProvider({ allowPlainCodeChallengeMethod: false }) or the equivalent for the mcp plugin to disable plain PKCE.
As a temporary workaround, override the metadata to remove none from id token signing alg values supported by passing metadata: { id token signing alg values supported: ["RS256"] } for oidcProvider or setting the same on options.oidcConfig.metadata for mcp.Exploit
Fix
Use of a Broken Cryptographic Algorithm
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Better Auth