Security Advisory WSO2-2021-1573

Published: January 19, 2022

Version: 1.0.0

Severity: High

CVSS Score: 8.5 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N)


AFFECTED PRODUCTS

  • WSO2 API Manager : 2.5.0 , 2.6.0 , 3.0.0 , 3.1.0 , 3.2.0 , 4.0.0
  • WSO2 Identity Server : 5.6.0 , 5.7.0 , 5.8.0 , 5.9.0 , 5.10.0 , 5.11.0
  • WSO2 IS as Key Manager : 5.6.0 , 5.7.0 , 5.9.0 , 5.10.0

OVERVIEW

Potential user impersonation vulnerability in federated authentication with JIT provisioning when specific configurations are enabled.

DESCRIPTION

In order for this vulnerability to have any impact on your deployment, following conditions must be met:

  • An IDP configured for federated authentication and JIT provisioning enabled with the "Prompt for username, password and consent" option.
  • A service provider that uses the above IDP for federated authentication and has the "Assert identity using mapped local subject identifier" flag enabled.

Attacker should have:

  • A fresh valid user account in the federated IDP that has not been used earlier.
  • Knowledge of the username of a valid user in the local IDP.

When all preconditions are met, a malicious actor could use JIT provisioning flow to perform user impersonation.

IMPACT

There is no impact to your deployment if all the preconditions mentioned in the description section are not met. Only if all mentioned preconditions in the description section are met, a malicious actor could associate a targeted local user account with a federated IDP user account that the malicious actor controls.

SOLUTION

If the latest version of the affected WSO2 product is not mentioned under the affected product list, you may migrate to the latest version to receive security fixes.

Otherwise, community users may apply the relevant fixes to the product based on the public fix(s):

To have backward compatibility where any user with the same JIT provisioned username can be associated with the local user with the same username, follow the below instructions.

For WSO2 Identity Server 5.9.0 and above, add the following configuration to <IS-HOME>/repository/conf/deployment.toml

[authentication]
jit_provisioning.associating_to_existing_user = true

For WSO2 Identity Server 5.8.0 and below, add the following configuration to <IS-HOME>/repository/conf/identity/identity.xml.

<JITProvisioning>
    <AllowAssociatingToExistingUser>true</AllowAssociatingToExistingUser>
</JITProvisioning>

Note

If it is enabled, there's a risk of unauthorized profile update.

WSO2 subscription holders may refer to the below table. You should update your product to the specified update level or a higher update level to apply the fix.

Product Name Product Version U2 Update Level
WSO2 API Manager 2.5.0 32
WSO2 API Manager 2.6.0 52
WSO2 API Manager 3.0.0 50
WSO2 API Manager 3.1.0 72
WSO2 API Manager 3.2.0 86
WSO2 API Manager 4.0.0 35
WSO2 Identity Server 5.6.0 16
WSO2 Identity Server 5.7.0 35
WSO2 Identity Server 5.8.0 26
WSO2 Identity Server 5.9.0 38
WSO2 Identity Server 5.10.0 78
WSO2 Identity Server 5.11.0 69
WSO2 IS as Key Manager 5.6.0 17
WSO2 IS as Key Manager 5.7.0 39
WSO2 IS as Key Manager 5.9.0 45
WSO2 IS as Key Manager 5.10.0 80

Info

If you are a WSO2 customer with a support subscription, use WSO2 Updates in order to apply the fix.

CREDITS

WSO2 thanks, Nghĩa Vũ Trung for responsibly reporting the identified issue and working with us as we addressed it.