CVE-2018-15758: Authorization bypass in org.springframework.security.oauth:spring-security-oauth2
8.1
Basic Information
Technical Details
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
org.springframework.security.oauth:spring-security-oauth2 | maven | >= 2.0.0, < 2.0.16 | 2.0.16 |
org.springframework.security.oauth:spring-security-oauth2 | maven | >= 2.1.0, < 2.1.3 | 2.1.3 |
org.springframework.security.oauth:spring-security-oauth2 | maven | >= 2.2.0, < 2.2.3.RELEASE | 2.2.3.RELEASE |
org.springframework.security.oauth:spring-security-oauth2 | maven | >= 2.3.0, < 2.3.4.RELEASE | 2.3.4.RELEASE |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from insufficient validation of AuthorizationRequest parameters between the initial authorization step and approval submission. The approveOrDeny method in vulnerable versions lacked the critical check comparing current AuthorizationRequest against an immutable original (added via ORIGINAL_AUTHORIZATION_REQUEST_ATTR_NAME in patches). The authorize method's session storage mechanism (using @SessionAttributes) allowed tampering because it didn't store a protected copy. Custom approval endpoints using AuthorizationRequest as a controller argument would inherit this flawed session handling, enabling parameter manipulation. The commits show these methods were modified to add validation and immutable session storage, confirming their role in the vulnerability.