All Vulnerability Reports

CVE-2022-31690: Privilege Escalation in spring-security-oauth2-client


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

History

2022-10-31: Initial vulnerability report published.