chore(deps): update dependency openidc/mod_auth_openidc to v2.4.20 - #1477
Open
renovate[bot] wants to merge 1 commit into
Open
chore(deps): update dependency openidc/mod_auth_openidc to v2.4.20#1477renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/openidc-mod_auth_openidc-2.x
branch
2 times, most recently
from
December 16, 2025 09:13
a5defb9 to
255419b
Compare
renovate
Bot
force-pushed
the
renovate/openidc-mod_auth_openidc-2.x
branch
from
February 2, 2026 15:47
255419b to
dbbf4b7
Compare
renovate
Bot
force-pushed
the
renovate/openidc-mod_auth_openidc-2.x
branch
from
February 12, 2026 12:07
dbbf4b7 to
ffef0b2
Compare
renovate
Bot
force-pushed
the
renovate/openidc-mod_auth_openidc-2.x
branch
from
May 14, 2026 15:28
ffef0b2 to
231bd5a
Compare
Contributor
|
The version should be |
renovate
Bot
force-pushed
the
renovate/openidc-mod_auth_openidc-2.x
branch
from
May 14, 2026 15:44
231bd5a to
c31cf78
Compare
renovate
Bot
force-pushed
the
renovate/openidc-mod_auth_openidc-2.x
branch
from
August 1, 2026 17:30
c31cf78 to
d1d4ccc
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2.4.16.11→v2.4.20Release Notes
OpenIDC/mod_auth_openidc (OpenIDC/mod_auth_openidc)
v2.4.20: release 2.4.20Compare Source
The 2.4.20.x versions use a backwards incompatible session encryption key so existing sessions (created by versions <=2.4.19.x) are invalid.
Security
OIDCCryptoPassphraseinto the AES key used for the internal "dir"/A256GCM JWE (state cookie, session cookie, cache value encryption) with PBKDF2-HMAC-SHA256 (210,000 iterations, a fixed application-specific salt) insteadNB: the internal session format has changed and is backwards incompatible: existing sessions and cookies will be invalid.
OIDCOAuthVerifyAudienceandOIDCOAuthVerifyIssuerto bind locally validated JWT access tokens to this resource server in OAuth 2.0 Resource Server mode (deprecated); as an alternative (or in addition) the audience can be enforced in the authorization policy with "Require claim aud:<value>" as documented in the Wiki for earlier versions; thanks @EQSTLabexp" claim in locally validated JWT access tokensX-Forwarded-For/User-Agentheaders plus the per-request nonce)APR_OS_DEFAULToidc_util_strcmp_const_time()instead of a plain string compareOIDCRedisCacheServervalue may carryOIDC_JWKS_FORCED_REFRESH_INTERVALenvironment variable (0-3600 seconds, 0 disables the guard)$<n>replacement handling ofOIDCRemoteUserClaim/OIDCOAuthRemoteUserClaimin builds against libpcre 1.xsub" that must match the one the session was established with) before applying it to the session, instead of storing its claims unverified; thanks @PyolarFeatures
OIDCCertBoundAccessTokens)OIDCPublicKeyFiles/OIDCPrivateKeyFilesnow accept an optional"<alg>[+<alg>...]@​"prefix, e.g."enc:RSA-OAEP@<file>"publishes the key with"alg":"RSA-OAEP"OIDCDiscoverIssuersAllowed, anOIDCRedirectURLsAllowed-style list of regular expressions that bounds which issuer values dynamic OpenID Connect Discovery (webfinger/URL-based, account-based, or direct issuer selection viaOIDCMetadataDir) is allowed to resolve toOIDCOAuthDecryptSharedKeysdirective to configure dedicated symmetric key(s) for decrypting encrypted JWT access tokens locally, instead of reusing the client secret configured for the OpenID Connect providerBugfixes
"cty":"JWT"on an encrypted request object and stop appending a trailing NUL byte to the JWE plaintext, so that OPs which strictly follow RFC 7519 section 5.2 (e.g. Keycloak) can decrypt and parse a signed-then- encrypted request objectdeflateBound(); the fixedinput_len * 2allocation was smaller than zlib's constant header/trailer overhead for values of just a few bytes, so compressing such values failed and any cache write of a tiny value (e.g. a cached jq expression result of "null") was silently dropped with a "could NOT store" warningresponse_typesarray that does not include the global/default value, the first advertised entry is now actually used, as documentedOIDCJWKSRefreshInterval) as the cache TTL for keys retrieved fromOIDCOAuthVerifyJwksUri, as was documented and intended, instead of accidentally usingOIDCUserInfoRefreshIntervalstrcmp()instead ofapr_strnatcmp()"natural ordering", which skips whitespace and compares digit runs numerically so two different byte strings could compare equalapr_generate_random_bytes()return value when generating a trace-id inoidc_util_set_trace_parent()and skip setting the traceparent header (with a warning) on failure, instead of hashing uninitialized stack bytes into the headerOIDCPathAuthRequestParams) and scope (OIDCPathScope) used at initial authentication in the session, and reuse them for the silent "check" re-authentication triggered by the RP iframe.conffiles; when a .conf does not set "token_endpoint_auth" the globally configured method was inherited but its ":" suffix (e.g. private_key_jwt:RS256) was dropped, so multi-provider setups silently signed client-authentication JWTs with the default algorithm; the fallback now re-appends the global algorithm (an explicit "token_endpoint_auth" in the .conf still overrides both)private_key_jwtis consistently rejected for configurations without private signing keysOIDCOAuthIntrospectionEndpointKeyPasswordbeing lost in merged (virtual host) configurationsOIDCCacheShmMax/OIDCCacheShmEntrySizeMaxexplicitly set to their default value in a vhost not overriding a differing base server valueOIDCRequestObjectconfiguration on the request-object-type error pathsOIDC_JQ_FILTER_CACHE_TTLcausing jq filter results to be cached under a NULL key with an already-past expiryOIDCProviderSignedJwksUriverification keys being silently dropped in metadata-directory mode when a provider's .conf did not itself supply a "signed_jwks_uri_key", which caused the signed JWKs signature verification to be skippedOIDCProviderMetadataRefreshIntervalbeing applied to the OAuth AS metadata cache expiry as microseconds instead of seconds, which made the metadata document re-fetched over HTTP on almost every bearer-token request_oidc_str_to_int()falls back to its default (not 0) on bad input, stop truncating timeout values aboveINT_MAXmicroseconds, and make an invalidOIDCHTTPTimeoutLong/Shortvalue fail config load instead of becoming a 0 (infinite) curl timeoutOIDCOAuthServerMetadataURLmetadata into a private per-request config view instead of mutating the shared server config with request-pool memory, which was a cross-request use-after-free / data race under threaded MPMs (worker/event)oidc_json_object_get_string_arraypushing a NULL entry for each non-string array element instead of skipping italigned(64)entry slots really are aligned; SIMD stores into an under-aligned slot could crash the server (SIGSEGV) on builds targeting a newer CPU baseline (e.g. Amazon Linux 2023)OIDCSessionCacheFallbackToCookiefallback when the cache has no entry for the session cookie, not only when the cache reports an erroralg"none") id_token obtained over the back-channel again when the signing algorithm has been pinned to "none" itself, throughOIDCIDTokenSignedResponseAlgor the client metadata; since 2.4.19.4 any pinned algorithm suppressed the "code"-flow exception that OpenID Connect Core 1.0 section 3.1.3.7 item 6 allows, so a pin of "none" - the way an operator, or the OP's own client registration, declares that this OP issues unsigned id_tokens - demanded a signature that cannot exist and failed every login. A pin of any other algorithm still overrides the exception and rejects the unsigned token, and an unsigned id_token received over the front channel is still rejected in all casesscope=openidparameter that accompanies arequest_urion the authorization request when the configuredOIDCProfileis FAPI20: OpenID Connect Core 1.0 requires it, but FAPI 2.0 Security Profile section 5.3.3.2 allows theclient_idandrequest_uriparameters only; this fixes a regression for FAPI 2.0 deployments introduced in 2.4.19.3 (and present in 2.4.19.4), which sent the parameter unconditionallyOIDCProvider*directives; standing down from mandating DPoP relied on a value that is only resolved while parsing provider metadata, so such an OP was still required to do DPoPOIDCRemoteUserClaim/OIDCOAuthRemoteUserClaimno longer fail on a claim value of 254 characters or moremtls_endpoint_aliasesentry that is not a valid URL as an error instead of quietly falling back to the conventional endpoint, which is precisely the one that does not bind the access token to the TLS client certificatePerformance
fork()are dropped in the child (their connections share descriptors and TLS state with the parent), and TCP keepalive is enabled on outbound connectionsshmcache with an in-segment hash table (bucket chains plus a free list, 1-based slot indexes) instead of linearly scanning all slots on every get/set while holding the global mutex: operations become O(chain) independent ofOIDCCacheShmMaxZ_BEST_COMPRESSIONwith a 32KB window, cutting the ~256KB of per-call zlib allocations by an order of magnitude and halving the envelope creation costoidc_http_hdr_normalize_name(was re-evaluated every iteration)exp" claim, which is now a required claim, mirroring the existing introspection-result cache, so repeated resource-server requests with the same bearer token skip decryption-key setup and signature re-verification;OIDCOAuthTokenIntrospectionIntervalsemantics applyCommercial
The RPM packages below are signed with the following RSA PGP key:
v2.4.19: release 2.4.19Compare Source
Note that this release changes the internal session format in a backwards incompatible way so existing sessions are invalid.
Features
OIDCCookieSameSiteoffoption toOIDCPassIDTokenAsso no claims from the ID token will be passed onOIDCCryptoPassphraseis not setnote that the
OIDCCryptoPassphrasedoes need to be configured statically if you want sessions to survive server restarts, or for a cluster that shares a session storage backendBugfixes
oidc_session_killinstead of just clearing itOther
id_tokenanduserinfoendpoint as JSON objects in the session - rather than strings - and avoid parsing/serializing overhead; results in up to 7% performance increase, depending on the number of claims stored; changes the internal session format in a backwards incompatible way so existing sessions are invalid!pconfpool memory allocation handling to avoid increasing memory (pool) consumption over graceful restartsSET..EX %dwhen storing cached data instead of the deprecatedSETEXclient-cookiesizeOIDC_ERRORvariables when PAR is configured but not enabled by the Providercurl_easy_setoptinhttp.ctest/test_*.cand migrate proto tests fromtest.cCommercial
The RPM packages below are signed with the following RSA PGP key:
v2.4.18: release 2.4.18Compare Source
Bugfixes
pconfpool (regression since 2.4.14)OIDCMemCacheConnectionsTTL: interpret the value correctly in seconds instead of microseconds (regression since 2.4.16); see #1345; thanks @rpluemOther
srcandtestsubdirsPackaging
Commercial
The RPM packages below are signed with the following RSA PGP key:
v2.4.17: release 2.4.17Compare Source
Features
scopeparameter as returned from the token endpoint in theOIDC_scopeheader/environment variable and make it available forRequire claim scope:purposes, if not available as a claim returned in theid_tokenoruserinfoendpoint; thanks Amaury BuffetBugfixes
token_endpoint_auth_methods_supportedand avoid the log error:oidc_metadata_provider_parse: oidc_provider_token_endpoint_auth_set: invalid valueand falling back to
client_secret_basicafter that; thanks François Koomansigned_jwks_uri_keyin a multi-provider setup; thanks Sami KorvonenOIDCProviderAuthRequestMethod POSTOIDCPreservePost On(both internal and template-based)Commercial
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.