CVE-2022-31690: Privilege Escalation in spring-security-oauth2-client
23743
31 October 2022
31 October 2022
CLOSED
HIGH
CVE-2022-31690
Severity
High
Vendor
Spring by VMware
Description
Spring Security, versions 5.7 prior to 5.7.5, and 5.6 prior to 5.6.9, and older unsupported versions could be susceptible to a privilege escalation under certain conditions. A malicious user or attacker can modify a request initiated by the Client (via the browser) to the Authorization Server which can lead to a privilege escalation on the subsequent approval. This scenario can happen if the Authorization Server responds with an OAuth2 Access Token Response containing an empty scope list (per RFC 6749, Section 5.1) on the subsequent request to the token endpoint to obtain the access token.This vulnerability exposes applications that meet all of the following requirements:
- Act in the role of a Login Client (e.g.
http.oauth2Login()) - Use one or more authorization rules with authorities mapped from authorized scopes (e.g.
anyRequest().hasAuthority("SCOPE_message.write")) in the client application - Register an authorization server that responds with empty scopes list (per RFC 6749, Section 5.1)
This vulnerability does not expose applications that:
- Act in the role of a Resource Server only (e.g.
http.oauth2ResourceServer()) - Use authorization rules with authorities not mapped from authorized scopes (e.g.
anyRequest().hasAuthority("ROLE_USER")) in the client application
Affected VMware Products and Versions
Severity is high unless otherwise noted.
- Spring Security
- 5.7 to 5.7.4
- 5.6 to 5.6.8
- Older, unsupported versions are also affected
Mitigation
Users of affected versions should apply the following mitigation: Spring Security 5.7 to 5.7.5, Spring Security 5.6 to 5.6.9. Older versions should upgrade to a supported branch. There are no other mitigation steps required. Releases that have fixed this issue include:- Spring Security
- 5.7.5
- 5.6.9
Credit
This issue was identified and responsibly reported by Tobias Soloschenko (@klopfdreh) from Apache Software Foundation.
References
- https://docs.spring.io/spring-security/reference/servlet/oauth2/login/index.html
- https://docs.spring.io/spring-security/reference/reactive/oauth2/login/index.html
- https://github.com/spring-projects/spring-security-samples/blob/4638e1e428ee2ddab234199eb3b67b9c94dfa08b/servlet/spring-boot/java/oauth2/webclient/src/main/java/example/SecurityConfiguration.java#L48
- https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N/E:P/RL:O/RC:C/CR:M/IR:M/AR:X/MAV:N/MAC:L/MPR:L/MUI:N/MS:U/MC:H/MI:H/MA:N&version=3.1
History
2022-10-31: Initial vulnerability report published.