In a multi-hop delegation chain, each agent acts as an OAuth client but
typically lacks the hardcoded configuration of a traditional app. By
design, agents resolve configuration dynamically at runtime, making
fetching the CIMD a natural solution. A single compromised CIMD can then
affect the entire chain, not just one client.

On Fri, Mar 27, 2026 at 3:27 PM Aaron Parecki <aaron=
[email protected]> wrote:

> a developer who is trying to avoid hardcoding things into their client
>
> On Fri, Mar 27, 2026 at 12:24 PM Warren Parad <wparad=
> [email protected]> wrote:
>
>> What might cause a client to decide it needed to fetch it's own CIMD?
>>
>> On Fri, Mar 27, 2026 at 7:52 PM Emelia S. <emelia=
>> [email protected]> wrote:
>>
>>> So, yes, a client doing something like:
>>>
>>> ```
>>> const response = fetch("https://app.example/cimd.json";)
>>> const cimd = response.json()
>>>
>>> // ...
>>>
>>> oauth.authorize({
>>>   redirect_uri: cimd.redirect_uris[0]
>>> })
>>> ```
>>>
>>> Would be bad, due the the `redirect_uri` in the authorization request
>>> being controlled by a remote document would allow an attacker to hijack by
>>> hacking the server serving the cimd.json, there are cases where the client
>>> may want to fetch the CIMD and then use it's data to validate the options
>>> passed to an SDKs `authorize()` method, as to not initiate an OAuth
>>> authorization code redirect if the redirect_uri or other supplied
>>> parameters would fail to match against the client, as to prevent dead-end
>>> redirects (if the redirect_uri isn't in the CIMD then you'll end up at a
>>> dead-end on the authorization server, because it can't redirect back to the
>>> application because it doesn't trust the supplied redirect_uri).
>>>
>>> So it is okay for clients to fetch CIMDs for validation, however the
>>> parameters for authorization redirects should always be application
>>> supplied (i.e., hard coded).
>>>
>>> — Emelia
>>>
>>> On 27 Mar 2026, at 18:57, Nick Watson <nwatson=
>>> [email protected]> wrote:
>>>
>>> I can attest that given a large enough pool of clients, any unusual
>>> behavior you can imagine will be implemented by at least one of them. :)
>>>
>>> On Fri, Mar 27, 2026 at 10:52 AM Warren Parad <wparad=
>>> [email protected]> wrote:
>>>
>>>> Could you say more about the scenario where this would be likely to
>>>> happen?
>>>>
>>>> On Fri, Mar 27, 2026, 18:38 Bernard Desruisseaux <bernard.desruisseaux=
>>>> [email protected]> wrote:
>>>>
>>>>> While the Client ID Metadata Document is intended to enable
>>>>> authorization servers to obtain client metadata, it occurred to me that
>>>>> client developers might be tempted to use their own CIMD as local
>>>>> configuration.
>>>>>
>>>>> I think it would be worthwhile to add a paragraph to the Security
>>>>> Considerations section to discourage that use. A client that relies on the
>>>>> redirect_uris from its own CIMD could cause authorization servers to send
>>>>> an authorization code to an attacker-controlled endpoint if the CIMD is
>>>>> ever compromised, even if the authorization server performs exact redirect
>>>>> URI matching. The use of PKCE may reduce the impact of authorization code
>>>>> disclosure, but it does not eliminate the need to protect redirect 
>>>>> handling
>>>>> and related metadata.
>>>>>
>>>>> Thanks,
>>>>> Bernard
>>>>> _______________________________________________
>>>>> OAuth mailing list -- [email protected]
>>>>> To unsubscribe send an email to [email protected]
>>>>>
>>>> _______________________________________________
>>>> OAuth mailing list -- [email protected]
>>>> To unsubscribe send an email to [email protected]
>>>>
>>> _______________________________________________
>>> OAuth mailing list -- [email protected]
>>> To unsubscribe send an email to [email protected]
>>>
>>>
>>> _______________________________________________
>> OAuth mailing list -- [email protected]
>> To unsubscribe send an email to [email protected]
>>
> _______________________________________________
> OAuth mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
>


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

Reply via email to