Summary
CVE-2026-44506 is a high-severity information disclosure vulnerability in Medplum, an open-source healthcare developer platform. In self-hosted deployments, the /oauth2/register endpoint could return the client_secret of preconfigured OAuth clients defined via the defaultOAuthClients server configuration when an attacker supplied a matching redirect_uri. The issue carries a CVSS v3.1 base score of 8.2 (High) and requires no authentication to exploit.
Technical details
- Root cause: The dynamic client registration endpoint (
/oauth2/register) did not properly restrict what it returned for clients that already existed in thedefaultOAuthClientsserver configuration; instead of rejecting or creating a new client, it returned the existing client’s metadata, including itsclient_secret. - Trigger conditions: The self-hosted server must have dynamic client registration enabled and
defaultOAuthClientsconfigured with entries containing embeddedclient_secretvalues. An attacker submits a registration request with aredirect_urimatching a preconfigured client. - Attack vector: Network-based, unauthenticated (AV:N, PR:N, UI:N) — no special privileges or user interaction required.
- Impact: Disclosure of OAuth client secrets (confidentiality impact) which could then be used to impersonate the affected OAuth client, potentially enabling further unauthorized actions depending on that client’s granted scopes. Hosted Medplum environments and clients stored only in the database (not via
defaultOAuthClients) were not affected.
Affected software
- Medplum (
@medplum/server), self-hosted deployments, versions 4.1.10 through 5.1.6, when dynamic client registration is enabled anddefaultOAuthClientsis configured withclient_secretvalues.
Severity
- CVSS v3.1 Base Score: 8.2 (High)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N
Mitigation and recommended actions
- Immediate: Upgrade self-hosted Medplum servers to version 5.1.7 or later, which no longer returns
client_secretvalues from the registration endpoint. - If upgrading is not immediately possible: Disable dynamic client registration, or remove
client_secretvalues fromdefaultOAuthClientsentries in the server configuration. - Additional precaution: Rotate any OAuth client secrets that may have been exposed prior to patching, regardless of whether exploitation has been observed.
How IONIX identifies potentially affected assets
IONIX matches the following signals against data already collected when it crawled the asset; identifying the technology sends no request beyond that crawl.
- Raw response body:
name="medplum-version" content="X.X.X",name="medplum-version"

