Description
OAuth2 Proxy is a reverse proxy that provides authentication using OAuth2 providers. Versions 7.5.0 through 7.15.1 have a configuration-dependent authentication bypass. Deployments are affected when all of the following are true: Use of `skip_auth_routes` or the legacy `skip_auth_regex`; use of patterns that can be widened by attacker-controlled suffixes, such as `^/foo/.*/bar$` causing potential exposure of `/foo/secret`; and protected upstream applications that interpret `#` as a fragment delimiter or otherwise route the request to the protected base path. In deployments that rely on these settings, an unauthenticated attacker can send a crafted request containing a number sign in the path, including the browser-safe encoded form `%23`, so that OAuth2 Proxy matches a public allowlist rule while the backend serves a protected resource. Deployments that do not use these skip-auth options, or that only allow exact public paths with tightly scoped method and path rules, are not affected. A fix has been implemented in version 7.15.2 to normalize request paths more conservatively before skip-auth matching so fragment content does not influence allowlist decisions. Users who cannot upgrade immediately can reduce exposure by tightening or removing `skip_auth_routes` and `skip_auth_regex` rules, especially patterns that use broad wildcards across path segments. Recommended mitigations include replacing broad rules with exact, anchored public paths and explicit HTTP methods; rejecting requests whose path contains `%23` or `#` at the ingress, load balancer, or WAF level; and/or avoiding placing sensitive application paths behind broad `skip_auth_routes` rules.
Published: 2026-04-21
Score: 8.2 High
EPSS: < 1% Very Low
KEV: No
Impact: Authentication Bypass
Action: Immediate Patch
AI Analysis

Impact

OAuth2 Proxy allows unauthenticated users to obtain protected resources by exploiting fragment confusion. When skip_auth_routes or the legacy skip_auth_regex are configured with patterns that can be broadened by suffixes, the proxy misinterprets a hash–fragment indicator (# or its encoded form %23) in the request path as part of the route pattern. As a result, the proxy thinks the request matches a public rule while the downstream application receives a request to a protected resource, effectively bypassing authentication. This flaw is a direct violation of authentication controls and is documented as CWE‑288.

Affected Systems

The vulnerability exists in oauth2-proxy:oauth2-proxy versions 7.5.0 through 7.15.1 when deployments use skip_auth_routes or skip_auth_regex with patterns that can be widened by attacker‑controlled suffixes and when protected upstream services interpret # as a fragment delimiter or route the request to a protected base path. Deployments that do not use these options or that restrict skip‑auth rules to exact paths are not affected.

Risk and Exploitability

With a CVSS score of 8.2 this issue is classified as high severity. No EPSS score is available, and the vulnerability is not listed in the CISA KEV catalog. An attacker can exploit the flaw by sending a crafted HTTP request containing a hash fragment to the proxy; the request is then allowed through the proxy’s skip‑auth logic and reaches the protected backend. The attack can be performed remotely from any network where the proxy is reachable, and requires no credentials. Consequently, the risk is significant and warrants immediate remediation.

Generated by OpenCVE AI on April 22, 2026 at 06:11 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade OAuth2 Proxy to version 7.15.2 or later, where request paths are normalized to prevent fragment confusion before skip‑auth matching.
  • If an immediate upgrade is not possible, tighten or remove skip_auth_routes and skip_auth_regex configurations, replacing broad wildcard patterns with exact, anchored paths and explicitly defined HTTP methods.
  • Reject or scrub requests that contain a hash fragment (# or %23) at the ingress, load balancer, or WAF level before they reach OAuth2 Proxy.

Generated by OpenCVE AI on April 22, 2026 at 06:11 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 22 Apr 2026 14:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 22 Apr 2026 11:45:00 +0000

Type Values Removed Values Added
First Time appeared Oauth2 Proxy Project
Oauth2 Proxy Project oauth2 Proxy
Vendors & Products Oauth2 Proxy Project
Oauth2 Proxy Project oauth2 Proxy

Wed, 22 Apr 2026 00:00:00 +0000

Type Values Removed Values Added
Description OAuth2 Proxy is a reverse proxy that provides authentication using OAuth2 providers. Versions 7.5.0 through 7.15.1 have a configuration-dependent authentication bypass. Deployments are affected when all of the following are true: Use of `skip_auth_routes` or the legacy `skip_auth_regex`; use of patterns that can be widened by attacker-controlled suffixes, such as `^/foo/.*/bar$` causing potential exposure of `/foo/secret`; and protected upstream applications that interpret `#` as a fragment delimiter or otherwise route the request to the protected base path. In deployments that rely on these settings, an unauthenticated attacker can send a crafted request containing a number sign in the path, including the browser-safe encoded form `%23`, so that OAuth2 Proxy matches a public allowlist rule while the backend serves a protected resource. Deployments that do not use these skip-auth options, or that only allow exact public paths with tightly scoped method and path rules, are not affected. A fix has been implemented in version 7.15.2 to normalize request paths more conservatively before skip-auth matching so fragment content does not influence allowlist decisions. Users who cannot upgrade immediately can reduce exposure by tightening or removing `skip_auth_routes` and `skip_auth_regex` rules, especially patterns that use broad wildcards across path segments. Recommended mitigations include replacing broad rules with exact, anchored public paths and explicit HTTP methods; rejecting requests whose path contains `%23` or `#` at the ingress, load balancer, or WAF level; and/or avoiding placing sensitive application paths behind broad `skip_auth_routes` rules.
Title OAuth2 Proxy has an Authentication Bypass via Fragment Confusion in skip_auth_routes and skip_auth_regex
Weaknesses CWE-288
References
Metrics cvssV3_1

{'score': 8.2, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N'}


Subscriptions

Oauth2 Proxy Project Oauth2 Proxy
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-04-22T13:13:50.227Z

Reserved: 2026-04-16T16:43:03.173Z

Link: CVE-2026-41059

cve-icon Vulnrichment

Updated: 2026-04-22T13:13:46.482Z

cve-icon NVD

Status : Received

Published: 2026-04-22T00:16:27.957

Modified: 2026-04-22T00:16:27.957

Link: CVE-2026-41059

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-04-22T11:30:15Z

Weaknesses