Skip to content
Fencer Vulns
medium 6.1

CVE-2020-15234 json

Redirect URL matching ignores character casing

published 2020-10-02 6 y ago modified 2026-09-10 1 mo ago also GHSA-grfp-q2mm-hfp6 , EUVD-2021-1085

cvss
6.1
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.8%
EPSS 0.8% chance of exploitation in 30 days, percentile 58%
public exploits
0
none known

Summary

ORY Fosite is a security first OAuth2 & OpenID Connect framework for Go. In Fosite before version 0.34.1, the OAuth 2.0 Client's registered redirect URLs and the redirect URL provided at the OAuth2 Authorization Endpoint where compared using strings.ToLower while they should have been compared with a simple string match. This allows an attacker to register a client with allowed redirect URL https://example.com/callback. Then perform an OAuth2 flow and requesting redirect URL https://example.com/CALLBACK. Instead of an error (invalid redirect URL), the browser is redirected to https://example.com/CALLBACK with a potentially successful OAuth2 response, depending on the state of the overall OAuth2 flow (the user might still deny the request for example). This vulnerability has been patched in ORY Fosite v0.34.1.

Patch / fix

  • go github.com/ory/fosite 0.34.1
  • ory fosite 0.34.1

Exploit prediction

0.84% chance of exploitation in the next 30 days, higher than 58% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
CNA 3.1 6.1 CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N
NVD 3.1 4.8 CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N
NVD 2.0 4.9 AV:N/AC:M/Au:S/C:P/I:P/A:N
GitHub 3.1 6.1 CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N

Affected packages

ecosystem package affected fixed in
go github.com/ory/fosite
<0.34.1
0.34.1

Affected products

  • ory fosite

Classification

Weakness
  • CWE-20 Improper Input Validation
  • CWE-601 URL Redirection to Untrusted Site
  • CWE-178 Improper Handling of Case Sensitivity

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.