On Sun, 31 May 2026, at 22:08, Emelia S. wrote:
> Hi Erin, 
> 
> As I think I mentioned on GitHub when you first reported this, the reason 
> CIMDs don't use .well-known is because we need to support CIMDs that were 
> issued prior to this draft specification (backwards compatibility with Solid 
> OIDC, which is the foundation for the draft). 

Backwards compatibiltiy is a worthy goal, but if it were our only goal we'd all 
be storing NT-hashes of user passwords and authenticating people with NTLM and 
encrypting things with RC4. 

I think we'd all agree that the OAuth WG should not be creating multiple 
specifications that, when used together, create security vulnerabilities. 

> The CIMD client_id URL must also have a non-empty path segment, so it cannot 
> be https://example.com/ instead it would need to be 
> https://example.com/example-client-id.json 
>
> > This specification defines the client identifier as a URL with the 
> > following restrictions. Client identifier URLs MUST have an "https" scheme, 
> > MUST contain a path component, MUST NOT contain single-dot or double-dot 
> > path segments
> 
> So I don't think the attack you're describing is possible within the current 
> draft. We do have an issue open to require a .json extension (I forget 
> where), as well as recommending the usage of /oauth-client-metadata.json as a 
> go-to. However, we need to retain the any-path segment in order to support 
> currently deployed CIMDs and Solid OIDC client identifier documents.

I don't think that fixes anything; "https://example.com/foo"; is a valid issuer 
identifier (-> https://example.com/.well-known/oauth-authorization-server/foo, 
or a different path for OpenID Connect but we will ignore *that* wonkiness for 
now...). Requiring a ".json" postfix is certainly possible, and in practice 
probably alleviates issues, but certainly there is no rule that you cannot have 
dots inside the path components of issuer identifiers; it's not really a solid 
basis upon which to build.

Fundamentally any HTTPS URL without a query or fragment component is a valid 
OAuth 2 or OpenID Connect issuer identifier, and I don't see a safe way any 
spec using HTTPS URLs as client identifiers can avoid dealing with potential 
confusion between the two.

- Erin

_______________________________________________
OAuth mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to