Miggo Logo

CVE-2020-15234: Redirect URL matching ignores character casing

6.1

CVSS Score
3.1

Basic Information

EPSS Score
0.48761%
Published
5/24/2021
Updated
2/1/2023
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
github.com/ory/fositego< 0.34.10.34.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stemmed from two key issues in URL validation: 1) Case-insensitive comparison via strings.ToLower in isMatchingRedirectURI's main check, and 2) Insufficient validation in isLoopbackURI that didn't match hostnames exactly or verify query parameters. The commit replaced strings.ToLower with direct string comparison and renamed/rewrote isLoopbackURI as isMatchingAsLoopback with stricter checks, confirming these were the vulnerable functions. Test cases removing case variation validations further support this analysis.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Imp**t ***or* v*rsion v*.**.*, t** O*ut* *.* *li*nt's r**ist*r** r**ir**t URLs *n* t** r**ir**t URL provi*** *t t** O*ut** *ut*oriz*tion *n*point w**r* *omp*r** usin* `strin*s.ToLow*r` w*il* t**y s*oul* **v* ***n *omp*r** wit* * simpl* strin* m*

Reasoning

T** vuln*r**ility st*mm** *rom two k*y issu*s in URL v*li**tion: *) **s*-ins*nsitiv* *omp*rison vi* `strin*s.ToLow*r` in `isM*t**in*R**ir**tURI`'s m*in ****k, *n* *) Insu**i*i*nt v*li**tion in `isLoop***kURI` t**t *i*n't m*t** *ostn*m*s *x**tly or v*