Authlib CVE-2026-116672: OAuth servers built from the RFC 7592 docstring examples let any client's registration token read, rewrite or delete other clients
An advisory from the Authlib project (GHSA-c73q-w75p-j82v, CVE-2026-116672, CVSS 3.1 8.8, Authlib 0.15 to 1.9.0) covers its RFC 7592 ClientConfigurationEndpoint.
- Bug: the endpoint calls
authenticate_token,authenticate_clientandcheck_permission, which developers must implement. The shipped docstring examples look the target client up from the request'sclient_idand check onlyclient.editable, so nothing verifies that the presentedregistration_access_tokenwas issued to that client. - Exploit path: where RFC 7591 registration is open (common), an attacker registers a throwaway client, takes its token, and sends
GET/PUT/DELETE /register/<victim_client_id>. APUTcan repoint the victim'sredirect_uristo intercept authorization codes or tokens for that client's users. - Fix: Authlib 1.9.1 (released Oct 14) makes the endpoint reject a registration access token issued to another client, and the docs now read
client_idfrom the URL instead of the body.
What to do: upgrade to 1.9.1 and review your own authenticate_client/check_permission implementations: confirm that request.credential (the token) maps to the client being accessed. Audit recent client registration updates for changed redirect_uris. MCP authorization servers that enable dynamic client registration should treat this as in scope.
Sources: Authlib advisory GHSA-c73q-w75p-j82v (CVE-2026-116672) · Fix commit 1bd2a31