# CVE-2021-21291: Subdomain checking of whitelisted domains could allow unintended redirects

> Attackers can redirect users to malicious sites due to flawed subdomain matching in the whitelist domain feature of OAuth2 Proxy.

- **Severity:** Medium 4.7 (`CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** A user has to click or open something
- **Fix available:** Yes
- **Published:** 2 Feb 2021
- **Updated:** 3 Aug 2024
- **Also known as:** BIT-oauth2-proxy-2021-21291, GHSA-4mf2-f3wh-gvf2, GO-2022-0790

## What is CVE-2021-21291?

CVE-2021-21291 is a medium-severity vulnerability in oauth2-proxy, published on 2 Feb 2021. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.

### Official description

OAuth2 Proxy is an open-source reverse proxy and static file server that provides authentication using Providers (Google, GitHub, and others) to validate accounts by email, domain or group. In OAuth2 Proxy before version 7.0.0, for users that use the whitelist domain feature, a domain that ended in a similar way to the intended domain could have been allowed as a redirect. For example, if a whitelist domain was configured for ".example.com", the intention is that subdomains of example.com are allowed. Instead, "example.com" and "badexample.com" could also match. This is fixed in version 7.0.0 onwards. As a workaround, one can disable the whitelist domain feature and run separate OAuth2 Proxy instances for each subdomain.

Weakness: CWE-601 (URL Redirection to Untrusted Site)

## Which versions are affected by CVE-2021-21291?

7 open source packages ship an affected version, including github.com/oauth2-proxy/oauth2-proxy, oauth2-proxy and github.com/oauth2-proxy/oauth2-proxy/v7. It affects 1 product.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `github.com/oauth2-proxy/oauth2-proxy` | Go | All versions | None |
| `github.com/oauth2-proxy/oauth2-proxy` | Go | All versions to 3.2.0 | None |
| `github.com/oauth2-proxy/oauth2-proxy` | Go | All versions to 3.2.0 | None |
| `oauth2-proxy` | Bitnami | All versions | 7.0.0 |
| `github.com/oauth2-proxy/oauth2-proxy/v7` | Go | All versions | 7.0.0 |
| `github.com/oauth2-proxy/oauth2-proxy/v7` | Go | All versions | 7.0.0 |
| `github.com/oauth2-proxy/oauth2-proxy/v7` | Go | All versions | 7.0.0 |

Products: Oauth2 Proxy Project Oauth2 Proxy.

## How do I fix CVE-2021-21291?

Upgrade to a fixed version.

## Is CVE-2021-21291 being exploited?

There is no known exploitation of CVE-2021-21291 in the wild and no public exploit code.

## Other vulnerabilities in oauth2-proxy

- [CVE-2026-40575](https://insights.sbomify.com/CVE-2026-40575/): OAuth2 Proxy has an Authentication Bypass via X-Forwarded-Uri Header Spoofing (critical 9.1)
- [CVE-2026-34457](https://insights.sbomify.com/CVE-2026-34457/): OAuth2 Proxy: Health Check User-Agent Matching Bypasses Authentication in auth_request Mode (critical 9.1)
- [CVE-2025-54576](https://insights.sbomify.com/CVE-2025-54576/): OAuth2-Proxy has authentication bypass in oauth2-proxy skip_auth_routes due to Query Parameter inclusion (critical 9.1)
- [CVE-2017-1000069](https://insights.sbomify.com/CVE-2017-1000069/): Cross-site Request Forgery (CSRF) (high 8.8)
- [CVE-2026-41059](https://insights.sbomify.com/CVE-2026-41059/): OAuth2 Proxy has an Authentication Bypass via Fragment Confusion in skip_auth_routes and skip_auth_regex (high 8.2)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2021-21291 and fix it if it is affected.

What it is: CVE-2021-21291 is a medium-severity vulnerability in oauth2-proxy, published on 2 Feb 2021. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Exploitation: There is no known exploitation of CVE-2021-21291 in the wild and no public exploit code.

Affected packages and fixed versions:
- github.com/oauth2-proxy/oauth2-proxy (Go): affected all versions; no fix listed
- github.com/oauth2-proxy/oauth2-proxy (Go): affected all versions up to 3.2.0; no fix listed
- github.com/oauth2-proxy/oauth2-proxy (Go): affected all versions up to 3.2.0; no fix listed
- oauth2-proxy (Bitnami): affected all versions; fixed in 7.0.0
- github.com/oauth2-proxy/oauth2-proxy/v7 (Go): affected all versions; fixed in 7.0.0
- github.com/oauth2-proxy/oauth2-proxy/v7 (Go): affected all versions; fixed in 7.0.0
- github.com/oauth2-proxy/oauth2-proxy/v7 (Go): affected all versions; fixed in 7.0.0

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2021-21291/ (Markdown: https://insights.sbomify.com/CVE-2021-21291/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2021-21291
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2021-21291
- OSV: https://osv.dev/vulnerability/CVE-2021-21291

---
From sbomify Insights: https://insights.sbomify.com/CVE-2021-21291/
Summaries are generated and may contain mistakes; the official description above is the record.
