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):
- https://github.com/wso2/carbon-identity-framework/pull/3808
- https://github.com/wso2/identity-apps/pull/2776
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.