---
id: "CVE-2026-116672"
kind: "vulnerability"
aliases: ["CVE-2026-116672"]
title: "Authlib: client registration flaw lets one OAuth client change another's"
severity: "high"
cvss: 8.8
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["authlib", "oauth-server", "openid-connect", "package", "python", "self-hosted"]
not_affected_if: ["no-client-configuration-endpoint", "oauth-client-only"]
published_at: "2026-10-27T17:16:59+00:00"
first_seen_at: "2026-10-27T17:32:46+00:00"
updated_at: "2026-10-27T17:34:22+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-116672", "first_seen_at": "2026-10-27T17:32:46+00:00"}]
---

# Authlib: client registration flaw lets one OAuth client change another's

Authlib's documented ClientConfigurationEndpoint examples look up the target client from request data without checking that the caller's registration token belongs to it. A client holding any valid registration access token can read, change redirect URIs of, or delete another client's registration.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed version with `pip show authlib` and look for versions from 0.15 up to but not including `1.9.1`
- Search your code for `ClientConfigurationEndpoint` and confirm whether `authenticate_client` and `check_permission` verify that `request.credential` belongs to the target client

## Fix

- Upgrade Authlib to `1.9.1` or later
- Until upgraded, add a check that the registration access token's client matches the client_id being acted on

## Timeline

- 2026-10-27T17:32:46+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-116672

## From the sources

Authlib is a Python library which builds OAuth and OpenID Connect servers. From 0.15 until 1.9.1, the documented ClientConfigurationEndpoint.authenticate_client and ClientConfigurationEndpoint.check_permission reference implementations look up a target client from request-controlled client_id data and check only whether that target is editable, without verifying that request.credential belongs to the target client. Deployments following both examples can allow a client holding any valid registration access token to read, modify, or delete another client's registration. Changing redirect_uris can enable authorization code or token interception, while deleting registrations can deny service to affected clients. This issue is fixed in version 1.9.1.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
