CVE-2026-40575 json
OAuth2 Proxy has an Authentication Bypass via X-Forwarded-Uri Header Spoofing
published 2026-04-15 6 mo ago modified 2026-10-01 38 d ago also BIT-oauth2-proxy-2026-40575 , BIT-oauth2-proxy-2026-76835 , CVE-2026-76835 , EUVD-2026-24557 , GHSA-7x63-xv5r-3p2x , GO-2026-5236
- cvss
- 9.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 41%
- public exploits
- 0
- none known
Summary
OAuth2 Proxy is a reverse proxy that provides authentication using OAuth2 providers. Versions 7.5.0 through 7.15.1 may trust a client-supplied `X-Forwarded-Uri` header when `--reverse-proxy` is enabled and `--skip-auth-regex` or `--skip-auth-route` is configured. An attacker can spoof this header so OAuth2 Proxy evaluates authentication and skip-auth rules against a different path than the one actually sent to the upstream application. This can result in an unauthenticated remote attacker bypassing authentication and accessing protected routes without a valid session. Impacted users are deployments that run oauth2-proxy with `--reverse-proxy` enabled and configure at least one `--skip-auth-regex` or `--skip-auth-route` rule. This issue is patched in `v7.15.2`. Some workarounds are available for those who cannot upgrade immediately. Strip any client-provided `X-Forwarded-Uri` header at the reverse proxy or load balancer level; explicitly overwrite `X-Forwarded-Uri` with the actual request URI before forwarding requests to OAuth2 Proxy; restrict direct client access to OAuth2 Proxy so it can only be reached through a trusted reverse proxy; and/or remove or narrow `--skip-auth-regex` / `--skip-auth-route` rules where possible. For nginx-based deployments, ensure `X-Forwarded-Uri` is set by nginx and not passed through from the client.
Patch / fix
- go github.com/oauth2-proxy/oauth2-proxy/v7 7.15.2
- bitnami oauth2-proxy 7.15.2, 7.15.5
- oauth2_proxy_project oauth2_proxy 7.15.2
- oauth2-proxy hummingbird 1 7.15.4-0.1.hum1
red hat advisories RHSA-2026:58471
- govulncheck-vulndb openSUSE Leap 16.0 0.0.20260723T184607-160000.1.1
opensuse advisories openSUSE-SU-2026:21483-1
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-40575 updated cvss 8.7
oauth2-proxy: github.com/oauth2-proxy/oauth2-proxy: OAuth2 Proxy: Authentication bypass due to spoofed X-Forwarded-Uri header
-
Red Hat Ceph Storage 9 rhceph/oauth2-proxy-rhel9affected: workaround, no fix available
-
Red Hat Hardened Images oauth2-proxy 7.15.4-0.1.hum1fixed: vendor fix RHSA-2026:58471
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- total
- Assessed
- 6 mo ago
Exploit prediction
0.48% chance of exploitation in the next 30 days, higher than 41% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 9.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
| CISA ADP | 3.1 | 8.7 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N |
| GitHub | 3.1 | 9.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
| CNA | 3.1 | 8.7 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N |
| OSV | 3.1 | 9.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | github.com/oauth2-proxy/oauth2-proxy/v7 | >=7.5.0, <7.15.2 |
7.15.2 |
| bitnami | oauth2-proxy | >=7.5.0, <7.15.2 >=7.15.2, <7.15.5 |
7.15.2 7.15.5 |
| go | github.com/oauth2-proxy/oauth2-proxy | all versions |
no fix listed |
Affected products
- oauth2-proxy oauth2-proxy
- Red Hat Red Hat Ceph Storage 9
Classification
- Weakness
-
- CWE-290 Authentication Bypass by Spoofing
References
-
github.com
/oauth2-proxy/oauth2-proxy/security/advisories/GHSA-7x63-xv5r-3p2x
web, vendor-advisory, advisory
-
access.redhat.com
/security/cve/CVE-2026-40575
vdb-entry, web
-
bugzilla.redhat.com
/show_bug.cgi?id=2460449
issue-tracking, web
-
security.access.redhat.com
/data/csaf/v2/vex/2026/cve-2026-40575.json
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-40575
advisory, web
-
github.com
/oauth2-proxy/oauth2-proxy
package, web
-
github.com
/oauth2-proxy/oauth2-proxy/blob/v7.15.4/pkg/apis/middleware/scope.go
web
-
github.com
/oauth2-proxy/oauth2-proxy/issues/3506
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-76835
web
-
vulncheck.com
/advisories/oauth2-proxy-through-authentication-bypass-via-x-forwarded-uri-under-the-default-trusted-proxy-set
web
Sources
- CVE List CVE-2026-40575
- GitHub Advisory GHSA-7x63-xv5r-3p2x
- NVD CVE-2026-40575
- OSV BIT-oauth2-proxy-2026-40575
- OSV BIT-oauth2-proxy-2026-76835
- OSV GO-2026-5236
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.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.