Skip to content

Commit 0ef442c

Browse files
committed
Merge branch 'main' into develop
2 parents 3b09bf8 + 96fc950 commit 0ef442c

9 files changed

Lines changed: 206 additions & 114 deletions

CHANGELOG.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,61 @@
11
# OpenId Connect Generic Changelog
22

3+
**3.11.3**
4+
5+
* Feature/improvement: Added configurable issuer setting for JWT validation.
6+
7+
**3.11.2**
8+
9+
* Improvement: Support identity providers that omit algorithm parameter in JWKS (Microsoft Entra ID).
10+
11+
**3.11.1**
12+
13+
* Fix bug created in 3.11.0 release when comparing issuer to derived expected value.
14+
15+
**3.11.0**
16+
17+
**SECURITY RELEASE**
18+
19+
* Security: Added JWT signature verification using JWKS to prevent token forgery
20+
* Security: Enhanced token claim validation (exp, aud, iss, iat, nonce)
21+
* Security: Replaced weak state generation with cryptographically secure random_bytes()
22+
* Security: Fixed open redirect vulnerability in authentication flow
23+
* Security: Restricted SSL verification bypass to local development environments only
24+
* Security: Added nonce protection to debug mode to prevent information disclosure
25+
* Security: Added SSRF protection by default through use of wp_safe_remote_* functions
26+
* Feature: Added JWKS endpoint configuration setting
27+
* Feature: Added OpenID Connect discovery document support
28+
* Feature: Added customizable login button text setting
29+
* Improvement: Migrated to Composer-managed dependencies
30+
* Fix: Corrected issuer validation to properly extract base URL from endpoints
31+
* Fix: Identity token timestamp tracking
32+
33+
**3.10.4**
34+
35+
* Fix issue with finding users on multisite after switch to user options in place of user meta.
36+
* Improvement: Retry logins for some IDP errors to bypass issue with Safari ITP. Also improves display of error messages that come from the IDP.
37+
38+
**3.10.3**
39+
40+
* Fix issue with log corruption causing fatal error.
41+
* Fix: Fallback to a POST request for userinfo when GET fails.
42+
* Fix: Improves multisite compatibility by switching to *_user_options() functions.
43+
* Fix: Fix for WordPress user session length being very short when refresh tokens are enabled.
44+
45+
**3.10.2**
46+
47+
* Fix: @socialmedialabs - Regression affecting SSO Auto Login with url handling improvement changes.
48+
49+
**3.10.1**
50+
51+
* Chore: @daggerhart - Readme updates and clarifications.
52+
* Chore: @daggerhart - Release workflow updates.
53+
* Improved error handling for malformed urls.
54+
* Fix: @JUVOJustin - Change request for userinfo to GET.
55+
* Feature: @JUVOJustin - New filter for settings values `openid-connect-generic-settings`.
56+
* Feature: @JUVOJustin - New filter for state values `openid-connect-generic-new-state-value`.
57+
58+
359
**3.10.0**
460

561
- Chore: @timnolte - Dependency updates.

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
**Tags:** security, login, oauth2, openidconnect, apps, authentication, autologin, sso
44
**Requires at least:** 5.0
55
**Tested up to:** 6.9.0
6-
**Stable tag:** 3.11.2
6+
**Stable tag:** 3.11.3
77
**Requires PHP:** 7.4
88
**License:** GPLv2 or later
99
**License URI:** http://www.gnu.org/licenses/gpl-2.0.html
@@ -49,12 +49,16 @@ On the settings page for this plugin (Dashboard > Settings > OpenID Connect Gene
4949

5050
## Upgrade Notice ##
5151

52-
### 3.11.2 ###
52+
### 3.11.3 ###
5353

54-
CRITICAL SECURITY UPDATE: 3.11.x Fixes authentication vulnerabilities including JWT signature bypass and SSRF protection. Update immediately and configure JWKS endpoint in settings.
54+
SECURITY UPDATE: 3.11.x branch - Fixes authentication vulnerabilities including JWT signature bypass and SSRF protection. Update immediately and configure JWKS endpoint in settings.
5555

5656
## Changelog ##
5757

58+
### 3.11.3 ###
59+
60+
* Feature/improvement: Added configurable issuer setting for JWT validation.
61+
5862
### 3.11.2 ###
5963

6064
* Improvement: Support identity providers that omit algorithm parameter in JWKS (Microsoft Entra ID).

includes/openid-connect-generic-client.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -698,6 +698,14 @@ public function validate_id_token_claim( $id_token_claim ) {
698698
}
699699

700700
if ( rtrim( $id_token_claim['iss'], '/' ) !== rtrim( $expected_issuer, '/' ) ) {
701+
$this->logger->log(
702+
sprintf(
703+
'Issuer mismatch - Expected: "%s", Received: "%s". Configure the correct issuer in Settings > OpenID Connect Client > Issuer field, or via the OIDC_ISSUER constant.',
704+
$expected_issuer,
705+
$id_token_claim['iss']
706+
),
707+
'issuer-mismatch'
708+
);
701709
return new WP_Error(
702710
'invalid-iss',
703711
sprintf(

includes/openid-connect-generic-jwt-validator.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,14 @@ private function validate_jwt_claims( $decoded_jwt ) {
228228
}
229229

230230
if ( rtrim( $decoded_jwt->iss, '/' ) !== rtrim( $this->issuer, '/' ) ) {
231+
$this->logger->log(
232+
sprintf(
233+
'Issuer mismatch - Expected: "%s", Received: "%s". Configure the correct issuer in Settings > OpenID Connect Client > Issuer field, or via the OIDC_ISSUER constant.',
234+
$this->issuer,
235+
$decoded_jwt->iss
236+
),
237+
'issuer-mismatch'
238+
);
231239
return new WP_Error(
232240
'invalid-iss',
233241
__( 'Token issuer does not match expected issuer.', 'daggerhart-openid-connect-generic' )

0 commit comments

Comments
 (0)