Miggo Logo

CVE-2018-15758: Authorization bypass in org.springframework.security.oauth:spring-security-oauth2

8.1

CVSS Score
3.0

Basic Information

EPSS Score
0.60112%
Published
10/19/2018
Updated
3/4/2024
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
org.springframework.security.oauth:spring-security-oauth2maven>= 2.0.0, < 2.0.162.0.16
org.springframework.security.oauth:spring-security-oauth2maven>= 2.1.0, < 2.1.32.1.3
org.springframework.security.oauth:spring-security-oauth2maven>= 2.2.0, < 2.2.3.RELEASE2.2.3.RELEASE
org.springframework.security.oauth:spring-security-oauth2maven>= 2.3.0, < 2.3.4.RELEASE2.3.4.RELEASE

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot 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.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

Sprin* S**urity O*ut*, v*rsions *.* prior to *.*.*, *n* *.* prior to *.*.*, *n* *.* prior to *.*.*, *n* *.* prior to *.*.**, *n* ol**r unsupport** v*rsions *oul* ** sus**pti*l* to * privil*** *s**l*tion un**r **rt*in *on*itions. * m*li*ious us*r or *

Reasoning

T** vuln*r**ility st*ms *rom insu**i*i*nt v*li**tion o* *ut*oriz*tionR*qu*st p*r*m*t*rs **tw**n t** initi*l *ut*oriz*tion st*p *n* *pprov*l su*mission. T** *pprov*Or**ny m*t*o* in vuln*r**l* v*rsions l**k** t** *riti**l ****k *omp*rin* *urr*nt *ut*or