unstale

npm / oidc-provider

oidc-provider

What changed in oidc-provider 9, from its official release notes, upgrade guides and advisories. Also covers @types/oidc-provider. Sources checked 2026-10-21.

11 breaking12 security6 new APIs and options6 behavior and defaults22 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.1 on npm

oidc-provider 957 changes

Breaking changes 11

  • Unknown authorization detail types are rejected.

    9.11.4release notes

  • Loosely decoded Basic credentials are rejected.

    9.11.4release notes

  • Empty URL components are rejected.

    9.11.4release notes

  • Sparse metadata arrays are rejected.

    9.11.4release notes

  • Non-string htu claims are rejected.

    9.11.4release notes

  • Request bodies are required to be JSON objects.

    9.11.4release notes

  • Ambiguous JWT proof keys are rejected.

    9.11.4release notes

  • OAuth request syntax is enforced.

    9.11.4release notes

  • Opaque origins are rejected by default.

    9.11.4release notes

  • Non-string sector document entries are rejected.

    9.11.4release notes

  • Unrecognized array members are filtered before validation, changing how CIMD array values are handled.

    9.7.1release notes

Security 12

  • The attestation proof-of-possession jti is validated.

    9.11.4release notes

  • Audience claim members are validated.

    9.11.4release notes

  • JWT proof identity claims are validated.

    9.11.4release notes

  • Key attestation contents are validated.

    9.11.4release notes

  • Model payloads are filtered safely.

    9.11.4release notes

  • Nested option validation is hardened.

    9.11.4release notes

  • Default memory storage is isolated per provider, preventing providers from sharing the same default storage.

    9.11.2release notes

  • dpop_jkt is recognized only when DPoP is enabled.

    9.11.1release notes

  • Default HTML helper output is escaped in shouldChange functions.

    9.8.5release notes

  • CIBA notification tokens are validated.

    9.8.3release notes

  • Malformed DPoP htu values are rejected with a clearer message.

    9.8.3release notes

  • Debug data sent to development-only interactions is now HTML-escaped.

    9.8.2release notes

New APIs and options 6

  • Built-in sender constraint checks are exposed for use by developers.

    9.12.2release notes

  • Grant helpers were added for custom grant implementers.

    9.12.0release notes

  • Allows customizing the expected audience of the OpenID4VCI Credential Endpoint.

    9.11.0release notes

  • Adds experimental support for OpenID for Verifiable Credential Issuance.

    9.10.0release notes

  • Adds experimental support for Client ID Metadata Document (CIMD).

    9.7.0release notes

  • Adds configuration for limiting external resource body limits.

    9.7.0release notes

Behavior and default changes 6

  • Rich Authorization Requests graduated.

    9.12.0release notes

  • Updates Attestation-Based Client Authentication to -10.

    9.10.0release notes

  • Updates CIMD support to draft -02, which may affect client metadata behavior.

    9.9.0release notes

  • Validation for native app custom URI schemes is relaxed, allowing schemes that were previously rejected.

    9.8.1release notes

  • rpMetadataChoices is now stable, so developers can rely on it as a stable configuration option.

    9.8.0release notes

  • Prevents fetching special-use IP address resources.

    9.7.0release notes

Fixes and other changes 22

  • Restores trust metadata for PAR parameters.

    9.12.1release notes

  • Missing interaction policy removals are now ignored.

    9.12.0release notes

  • String comparisons now use UTF-8 byte lengths.

    9.11.5release notes

  • Strict compact JWT decoders are used.

    9.11.4release notes

  • Credential configuration references are validated.

    9.11.4release notes

  • Individual claim request shapes are validated.

    9.11.4release notes

  • Registered redirect URIs are compared exactly.

    9.11.4release notes

  • Empty Request Object parameters are omitted.

    9.11.4release notes

  • Undefined response parameters are omitted.

    9.11.3release notes

  • Grant parameters are isolated by feature, avoiding parameters for one feature affecting another.

    9.11.2release notes

  • Memory adapter entries now expire correctly, so developers can rely on configured entry expiration.

    9.11.2release notes

  • The CIMD metadata document cache is now bounded.

    9.11.2release notes

  • The grant.revoked event is no longer emitted twice during logout.

    9.11.1release notes

  • ID Token claims are resolved using the effective scope.

    9.11.1release notes

  • A skipped refresh token lookup is no longer dereferenced.

    9.11.1release notes

  • Server challenges are derived from the clock rather than a timer.

    9.11.1release notes

  • Stale clients are ignored during logout confirmation.

    9.9.1release notes

  • No longer calls revokeByGrantId when grantId is missing.

    9.8.6release notes

  • The CIBA user code is passed to the verifier.

    9.8.3release notes

  • Signing keys are selected for JWT access tokens.

    9.8.3release notes

  • Registration token policy is awaited, so its result is handled before processing continues.

    9.8.3release notes

  • A mismatch between grant_types and response_types is fixed up instead of being rejected.

    9.7.1release notes